设置或未设置REQUEST_URI

时间:2016-02-01 18:01:50

标签: php linux apache request-uri

我有一小段示例代码来提取页面的URI。此页面在Linux / Apache安装上运行:

$url = "";
if (!isset($_SERVER['REQUEST_URI'])) {
  echo "request_uri is not set";
  $url = "value could not be set, !isset on REQUEST_URI was true";
} else {
  $url = $_SERVER['REQUEST_URI'];
}
echo "url = $url <br />";

当我在浏览器中提取此页面时,代码似乎已达到“其他”状态,并且我获得了正确的URI。

但是,当我使用“php filename.php”直接从命令行运行此代码时,代码似乎达到if条件,其中未设置REQUEST_URI。如果我删除“if”条件,我会收到错误“PHP Notice:Undefined index REQUEST_URI in ...”

这让我有点疯狂! REQUEST_URI有问题吗?为什么它会在浏览器和命令行之间返回不同的答案?我在哪里可以进入服务器以查看该值是否实际设置并可返回?

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

如果你从浏览器中调用它,你正在请求URI,然后HTTP服务器正在执行PHP程序并告诉它该URI是什么。

如果从命令行调用它,那么就没有HTTP REQUEST并且没有URI(也就是说,没有服务器)。

你完全可以预料到你的行为。