php检测文档索引是否为localhost

Spa*_*awk 3 php wordpress if-statement ip-address

我想知道如何检测用户是否在本地主机上.

我之所以这样做,是因为我可以在现场服务器上自动运行生产代码,但在我的机器上运行未压缩的代码,而无需一直更改链接.

我知道我可以在JS中这样做... if(document.URL.indexOf("localhost:8888")<= 0){

但是我需要在Php中为我的WordPress安装做这件事.我在这里遇到了类似的问题 - 如何检测用户是否在PHP的localhost上?

所以我尝试了这个(下面),但它无法加载任何东西

<?php if(IPAddress::In(array("127.0.0.1","::1"))) { ?>
        <script src="<?php bloginfo('template_url'); ?>/js/scripts.js"></script>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)

我也在这里尝试了建议的解决方案,但是再一次,对我不起作用如何检测用户是否在PHP中的localhost?

如果这些细节有帮助,我在Mac上使用MAMP,安装WordPress.

Mat*_*att 13

使用$ _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
}
Run Code Online (Sandbox Code Playgroud)

编辑:关于TerryE的评论,您可能想要做这样的事情(或者看看他的正则表达式答案,尽管可能不需要):

if (substr($_SERVER['REMOTE_ADDR'], 0, 4) == '127.'
        || $_SERVER['REMOTE_ADDR'] == '::1') {
    // code for localhost here
}
Run Code Online (Sandbox Code Playgroud)

因为localhost可以是127.0.0.0/8中的任何内容,尽管127.0.0.1是最常见的.http://en.wikipedia.org/wiki/Localhost

虽然我的原始答案可能会很好(这是Symfony2默认使用"保护"app_dev.php免于意外生产使用)