php取得外部变量的首选方法是用下面提及的超全局变量。在此之前,人们要么依赖 register_globals,要么就是长长的预定义 PHP 数组($HTTP_*_VARS)。自 PHP 5.0.0 起,长格式的 PHP 预定义变量可以通过设置 register_long_arrays 来屏蔽。 在PHP编程中,预定义变量是非常重要的组成部分,它们在脚本执行过程中自动初始化,并且具有全局作用域。本文将详细讲解PHP预定义变量的使用,特别是超全局变量`$_SERVER`,并提供实例来帮助理解。 PHP预定义变量是系统默认创建的变量,它们在任何函数、类或方法内部都可以直接访问,无需使用`global`关键字。这些变量主要用于获取环境信息、用户输入以及服务器状态等。在PHP 4.1.0及更高版本中,`$_SERVER`成为获取外部变量的主要方式,取代了过时的`register_globals`和长格式的`$HTTP_*_VARS`数组。自PHP 5.0.0起,长格式的预定义变量可以通过设置`register_long_arrays`来禁用,以提高安全性。 `$_SERVER`是一个包含多种服务器和执行环境信息的超全局数组。其中一些关键的元素包括: 1. `PHP_SELF`:当前执行脚本的文件名,相对于文档根目录的路径。例如,如果脚本通过URL `http://example.com/test.php/foo.bar` 访问,`$_SERVER['PHP_SELF']`将返回`/test.php/foo.bar`。 2. `__FILE__`:包含当前(包含)文件的绝对路径和文件名,即使在命令行模式下也始终有效。 3. `argv`:当脚本通过命令行运行时,这个变量包含了传递给脚本的参数,以C语言风格的数组形式存在。 4. `argc`:记录命令行参数的数量,仅在命令行模式下有意义。 5. `GATEWAY_INTERFACE`:服务器使用的CGI规范的版本,如“CGI/1.1”。 6. `SERVER_NAME`:运行脚本的服务器主机名,如果是虚拟主机,则由虚拟主机配置决定。 7. `SERVER_SOFTWARE`:服务器使用的软件标识字符串。 8. `SERVER_PROTOCOL`:请求页面时使用的通信协议名称和版本,如“HTTP/1.0”或“HTTP/1.1”。 9. `REQUEST_METHOD`:请求页面时的HTTP方法,如“GET”、“POST”、“PUT”等。 10. `REQUEST_TIME`:请求开始的时间戳,自PHP 5.1.0起引入。 11. `QUERY_STRING`:URL中问号(?)后的查询字符串。 12. `DOCUMENT_ROOT`:当前脚本所在的文档根目录,由服务器配置定义。 13. `HTTP_ACCEPT`:客户端接受的MIME类型列表。 14. `HTTP_ACCEPT_CHARSET`:客户端接受的字符集列表。 15. `HTTP_ACCEPT_ENCODING`:客户端接受的编码类型,如“gzip”。 16. `HTTP_ACCEPT_LANGUAGE`:客户端接受的语言列表。 这些预定义变量是PHP开发者日常工作中不可或缺的工具,用于获取和处理用户请求、服务器状态和脚本执行环境的各种信息。在编写PHP代码时,了解和熟练运用这些预定义变量,能帮助开发者更好地实现功能,优化性能,并确保代码的兼容性和安全性。
- 粉丝: 6
- 资源: 986
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#.NET公墓陵园管理系统源码数据库 SQL2008源码类型 WebForm
- 作业这是作业文件这是作业
- 4353_135543959.html
- C#物联订单仓储综合管理系统源码 物联综合管理系统源码数据库 SQL2008源码类型 WebForm
- 2024年最新敏感词库(7万余条)
- java带财务进销存ERP管理系统源码数据库 MySQL源码类型 WebForm
- java制造业MES生产管理系统源码 MES源码数据库 MySQL源码类型 WebForm
- 基于无人机航拍数据实现的三维场景重建python源代码+文档说明+数据集(高分项目)
- 【重磅,更新!】全国2000-2022年植被指数数据(分辨率30m)
- 包含Qt5Core.dll Qt5Gui.dll Qt5Network.dll Qt5Svg.dll Qt5Widgets.dl