我想知道如何检测用户是否在本地主机上。
我这样做的原因是我可以在实时服务器上自动运行生产代码,但在我的机器上运行未压缩的代码,而不必一直更改链接。
我知道我可以像这样在 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'], 0, 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 免受意外生产使用)
关于php检测文档索引是否为localhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253739/