我有一小部分示例代码可以拉入页面的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 />";

当我在浏览器中向上拉这个页面时,代码似乎达到了“else”条件,我得到了正确的uri。
但是,当我使用“php filename.php”从命令行直接运行这段代码时,代码似乎遇到了if条件,其中没有设置request-uri。如果删除“if”条件,将得到错误“php notice:undefined index request_uri in…”
这让我有点疯狂!请求uri有问题吗?为什么它会在浏览器和命令行之间返回不同的答案?我可以在服务器上的哪个位置查看该值是否实际设置并可返回?
谢谢你的帮助。

最佳答案

如果您从浏览器调用它,您将请求一个uri,然后http服务器将执行php程序并告诉它该uri是什么。
如果从命令行调用它,则没有http请求,也没有uri(也没有服务器)。
你的行为完全是意料之中的。

09-26 18:34
查看更多