Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php检测文档索引是否为localhost_Php_Wordpress_If Statement_Ip Address - Fatal编程技术网

php检测文档索引是否为localhost

php检测文档索引是否为localhost,php,wordpress,if-statement,ip-address,Php,Wordpress,If Statement,Ip Address,我想知道如何检测用户是否在本地主机上 我这样做的原因是,我可以在实时服务器上自动运行生产代码,但在我的机器上运行未压缩的代码,而无需一直更改链接 我知道我可以在JS中这样做。。。 如果(document.URL.indexOf(“localhost:8888”)使用$\u服务器全局变量: 编辑:关于TerryE的评论,您可能想做类似的事情(或者查看他的正则表达式答案,尽管可能不需要): 因为localhost可以是127.0.0.0/8中的任何内容,尽管127.0.0.1是最常见的 虽然我的原始

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

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

我知道我可以在JS中这样做。。。
如果(document.URL.indexOf(“localhost:8888”)使用$\u服务器全局变量:

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

因为localhost可以是127.0.0.0/8中的任何内容,尽管127.0.0.1是最常见的


虽然我的原始答案可能会很好(Symfony2默认使用它来“保护”app_dev.php不被意外使用)

使用
preg\u匹配(“!127\.0\.\d+.\d+!”,$\u服务器[“REMOTE\u ADDR”])
。B类匹配是可以的,因为有时会出现在127.0.1.1等版本中。

类似于Matt的回答,您可以使用服务器变量

if(!(strpos($_SERVER['SERVER_NAME'], 'localhost') === false)){
   //on localhost
}

Matt也是正确的:您还应该检查IPv6环回:
!(127\.0\.\d+.\d+:1)!“
你真的需要正则表达式吗?为什么localhost会是127.0.1.1?我想我只是很确定localhost总是127.0.0.1。看,你显然在你的PC/笔记本电脑上运行WinXXXX。世界上很多其他地方都运行Linux、IOS…-)啊,我不知道。但是这不是说127.0.0.X就是环回,因为
/8
部分只会影响最后8位吗?因此,基本上匹配任何以
127.0.0开头的字符串。
应该可以工作吗?是的,我主要运行Windows,但是有相当多的Linux经验和虚拟机。太好了,谢谢Matt。最后,你知道在加载之前检查地址是否会对性能造成影响吗?比如说,加载脚本?我认为这是非常微不足道的。如果有什么不同的话,大型数组中的
可能会很慢,但2个元素不应该很慢。本质上,您正在进行两个字符串比较,因此这不会减慢您的速度。如果这是性能关键,那么无论如何,您应该为您的开发机器使用不同的引导/前端控制器。实际上,127.0.0.1/8意味着前8位是固定的。所以它不仅是127.0.0.X,甚至是127.X.Y.Z,尽管127.0.0.1是目前为止最常见的地址。哦,我明白了,我有一个backwards服务器名称并不总是可用的。
if (in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1'))) {
    // code for localhost here
}
if (substr($_SERVER['REMOTE_ADDR'], 0, 4) == '127.'
        || $_SERVER['REMOTE_ADDR'] == '::1') {
    // code for localhost here
}
if(!(strpos($_SERVER['SERVER_NAME'], 'localhost') === false)){
   //on localhost
}