PHP 中的 PHP_SELF、SCRIPT_NAME 和 REQUEST_URI 有啥区别? [复制]

Posted

技术标签:

【中文标题】PHP 中的 PHP_SELF、SCRIPT_NAME 和 REQUEST_URI 有啥区别? [复制]【英文标题】:what's the difference between PHP_SELF, SCRIPT_NAME and REQUEST_URI in PHP? [duplicate]PHP 中的 PHP_SELF、SCRIPT_NAME 和 REQUEST_URI 有什么区别? [复制] 【发布时间】:2013-06-03 12:55:57 【问题描述】:

标题中都说了。

这三个属性有什么区别? 我一直在测试它们的价值,我只能说它们是相似的。但是因为我是一个标准的怪胎,所以我想知道它们之间是否存在一些微妙之处,这样我就可以避免糟糕的编码或后来陷入一些意想不到的行为。

【问题讨论】:

可以参考***.com/questions/279966/… downvoting 是不公平的,好吧,如果答案已经发布,我没有仔细检查,但只是关闭似乎是正确的决定。事实上,这个问题并没有超出 SO 的规则。 【参考方案1】:

'php_SELF'

当前执行脚本的文件名,相对于文档根目录。例如,地址http://example.com/test.php/foo.bar 的脚本中的$_SERVER['PHP_SELF'] 将是/test.php/foo.bar。 FILE 常量包含当前(即包含的)文件的完整路径和文件名。如果 PHP 作为命令行处理器运行,则此变量包含自 PHP 4.3.0 以来的脚本名称。以前它不可用。

'SCRIPT_NAME'

包含当前脚本的路径。这对于需要指向自身的页面很有用。 FILE 常量包含当前(即包含的)文件的完整路径和文件名。

'REQUEST_URI'

为访问此页面而提供的 URI;例如,'/index.html'。

【讨论】:

我不明白那个负面标记。

以上是关于PHP 中的 PHP_SELF、SCRIPT_NAME 和 REQUEST_URI 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

php `$_SERVER['PHP_SELF']` 为空

PHP_SELF SCRIPT_NAME REQUEST_URI区别

$_SERVER变量 以及 PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题

PHP 使用'PHP_SELF'时杀死url注入

之间的区别:$_SERVER['SCRIPT_NAME'] 和 $_SERVER['PHP_SELF']

php` $ _SERVER ['PHP_SELF']`是空的