我想知道如何检测用户是否在本地主机上.
我之所以这样做,是因为我可以在实时服务器上自动运行生产代码,但在我的机器上运行未压缩的代码,而无需一直更改链接.
我知道我可以在JS这样做……
if(document.URL.indexOf(“localhost:8888”)< = 0){ 但是我需要在PHP中为我的wordpress安装做这件事.我在这里遇到过类似的问题 – How can I detect if the user is on localhost in PHP?
所以我尝试了这个(下面),但它无法加载任何东西
<?PHP if(IPAddress::In(array("127.0.0.1","::1"))) { ?> <script src="<?PHP bloginfo('template_url'); ?>/js/scripts.js"></script> <?PHP } ?>
我也在这里尝试了建议的解决方案,但是再次,对我来说不起作用How can I detect if the user is on localhost in PHP?
如果这些细节有帮助,我在Mac上使用MAMP,安装wordpress.
解决方法
使用$_SERVER全局变量:
http://www.php.net/manual/en/reserved.variables.server.php
if (in_array($_SERVER['REMOTE_ADDR'],array('127.0.0.1','::1'))) { // code for localhost here }
编辑:关于TerryE的评论,你可能想做这样的事情(或者看看他的正则表达式答案,虽然可能不需要):
if (substr($_SERVER['REMOTE_ADDR'],4) == '127.' || $_SERVER['REMOTE_ADDR'] == '::1') { // code for localhost here }
因为localhost可以是127.0.0.0/8中的任何东西,尽管127.0.0.1是最常见的. http://en.wikipedia.org/wiki/Localhost
虽然我的原始答案可能会很好(这是Symfony2默认使用“保护”app_dev.PHP免于意外生产使用)