关于超全局变量
超全局变量是在PHP4+启用的,是系统自带的变量,生存周期为整个脚本。PHP种常见的超全局变量有下面几种:
先更新我学到的几个超全局变量,后面的我随学随更新。(示例代码转自runoob.com,部分有删改)
$GLOBALS
$GLOBALS是一个包含了全部变量的全局组合数组。换言之,一个脚本内部所有的变量都会保存在这个$GLOBALS数组下面,变量的名字就是这个数组的键。示例如下:
$_SERVER数组是一个包含了诸如头信息、路径、脚本位置等等一系列信息的数组。常见重要元素:
$_SERVER['PHP_SELF']:返回当前脚本的文件名。
$_SERVER['GATEWAY_INTERFACE']:返回服务器使用的CGI规范的版本。
$_SERVER['SERVER_ADDR']:返回当前脚本所在服务器的IP地址。
$_SERVER['SERVER_NAME']:返回当前脚本所在服务器的主机名。
$_SERVER['SERVER_SOFTWARE']:返回服务器标识字符串。即服务器现在在使用什么软件还有其版本号(例如:阿帕奇)。
$_SERVER['SERVER_PROTOCOL']:请求页面时通信协议的名称和版本。
$_SERVER['REQUEST_METHOD']:访问页面时使用的请求方法(例如GET、POST、PUT方法等)。
$_SERVER['REQUEST_TIME']:请求开始的时间戳。注:时间戳指的是从格林尼治时间的0时到现在的的那个时间点。
$_SERVER['QUERY_STRING'] query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT'] 当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET'] 当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:"iso-8859-1,*,utf-8"。
$_SERVER['HTTP_HOST'] 当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['HTTP_REFERER'] 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)
$_SERVER['HTTPS'] 如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER['REMOTE_ADDR'] 浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST'] 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT'] 用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:[email protected])
$_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE'] 包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME'] 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER['SCRIPT_URI'] URI 用来指定要访问的页面。例如 "/index.html"。 (以上命令摘自runoob.com)
$_REQUEST
$_REQUEST用于收集HTML提交上来的表单数据。与$_POST、$_GET实现的功能一样,但是该超级全局变量执行时间较长。