首页 > 后端开发 > php教程 > PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI:有什么区别?

PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI:有什么区别?

Barbara Streisand
发布: 2024-11-02 15:48:02
原创
194 人浏览过

PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI: What's the Difference?

PHP_SELF vs PATH_INFO vs SCRIPT_NAME vs REQUEST_URI:了解差异

开发 PHP 应用程序时,了解 PHP_SELF 和 PATH_INFO 之间的区别至关重要、SCRIPT_NAME 和 REQUEST_URI。这些服务器变量提供有关当前脚本地址的信息,可用于导航和 URL 重写。

PHP_SELF 通常包含当前脚本的完整 URI,包括脚本名称和任何路径信息。但是,在请求采用 http://example.com/test.php/foo/bar 形式的情况下,它可能与 SCRIPT_NAME 不同。

PATH_INFO 包含路径请求 URI 末尾的信息。但是,仅当请求 URI 采用上述形式时才会填充。

SCRIPT_NAME 表示当前脚本的名称,不包括任何路径信息。它通常与 PHP_SELF 相同,除非 URI 中包含 /。

REQUEST_URI 包含完整的请求 URI,包括路径、查询字符串和锚点。当存在查询字符串或使用服务器端重定向时,它与 PHP_SELF 和 SCRIPT_NAME 不同。

为了说明差异,这里有一些实际示例:

示例 1:
http://example.com/test.php/foo/bar

  • PHP_SELF:/test.php/foo/bar
  • SCRIPT_NAME:/test .php

示例 2:
http://example.com/test.php?foo=bar

  • SCRIPT_NAME: / test.php
  • REQUEST_URI: /test.php?foo=bar

示例 3:
http://example.com/test。 php (使用 mod_rewrite 重定向)

  • REQUEST_URI: /test.php
  • SCRIPT_NAME: /test2.php

示例 4:
IIS 中的自定义错误页面:
http://example.com/test.php

  • SCRIPT_NAME: /404error.php
  • REQUEST_URI: /404error。 php?404;http://example.com/test.php

通过了解这些差异,您可以有效地利用适当的服务器变量来处理 PHP 中的导航、URL 重写和错误处理应用程序。

以上是PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI:有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板