【发布时间】:2012-09-03 01:05:53
【问题描述】:
代码如下:
if (isset($_SERVER['HTTP_HOST']) === TRUE) {
$host = $_SERVER['HTTP_HOST'];
}
如何在 if 语句内的行上获得“未定义索引 HTTP_HOST”?我的意思是,在使用索引设置之前会对其进行检查。
为什么有时不能设置 HTTP_HOST?
【问题讨论】:
-
您的代码中不可能有未定义的索引。如果你在命令行中运行 php,HTTP_HOST 是没有设置的,因为这个 HTTP_HOST 是由 web 服务器设置的。
-
如果有人告诉您您的代码有问题,我会感到非常惊讶。您是否 100% 确定错误出现在该行?
-
我 100% 确定错误在于 $host = $_SERVER['HTTP_HOST'];线,我很困惑。我还认为未定义的索引通知是不可能的。这就是我在这里问这个问题的原因。
-
使用 getenv('HTTP_HOST') 代替 $_SERVER['HTTP_HOST']。
-
我有这方面的经验,使用的是 nginx,而不是 apache Web 服务器。