【发布时间】:2014-10-09 04:39:33
【问题描述】:
我想在我的 functions.php 上创建一个函数来检查我是在本地设置(url 是 http://macbook.local:5757/)还是实时服务器(example.com)。
这是我的代码:
$server = $_SERVER["HTTP_HOST"];
if (strpos($server,'macbook') !== false) {
echo 'true ';
echo $server;
} else {
echo 'false ';
echo $server;
}
它输出:
“假 macbook.local:5757”
如果我编辑代码并输入:
//$server = $_SERVER["HTTP_HOST"];
$server = "macbook.local:5757";
if (strpos($server,'macbook') !== false) {
echo 'true ';
echo $server;
} else {
echo 'false ';
echo $server;
}
我得到: “真正的 macbook.local:5757”
为什么另一个不工作而另一个工作?它们看起来像同一根弦。 我可能在这里遗漏了一些基本的东西。 我在 wp-config.php 上使用类似的设置来设置数据库凭据,具体取决于站点是本地站点还是现场站点,并且它在那里工作。
谢谢!
编辑:如果我使用
var_dump($server);
它输出:
假字符串(17)“macbook.local:5757”
【问题讨论】:
-
当您的第二个示例输出
true时,再次尝试使用var_dump($server);。还有一个风格提示,不要使用常见的strpos() !== false解决方法,如果条件不是过度可读,则双重否定。更喜欢is_int(strpos(...)),它实际上检查整数。在你的情况下in_array()可能更明智。 -
谢谢! var_dump 输出这个奇怪的东西:'false-string(17) "pmb.local:5757"'