PHP 预定义变量
PHP为其运行的任何脚本提供了大量的预定义变量。PHP提供了一组额外的预定义数组,包含来自Web服务器环境和用户输入的变量。这些新数组被称为超全局变量−
下列所有变量在每个作用域中都自动可用。
PHP超全局变量
序号 | 变量与描述 |
---|---|
1 | $GLOBALS 包含脚本全局范围内当前可用的每个变量的引用。这个数组的键是全局变量的名称。 |
2 | $_SERVER 这是一个包含例如头文件、路径和脚本位置的信息的数组。这个数组中的条目是由网络服务器创建的。不能保证每个网络服务器都会提供这些。请参阅下一节,获取所有的SERVER变量的完整列表。 |
3 | $_GET 一个关联数组,其中包含通过HTTP GET方法传递给当前脚本的变量。 |
4 | $_POST 一个关联数组,其中包含通过HTTP POST方法传递给当前脚本的变量。 |
5 | $_FILES 一个关联数组,其中包含通过HTTP POST方法上传到当前脚本的条目。 |
6 | $_REQUEST 一个由$_GET 、$_POST 和$_COOKIE 的内容组成的关联数组。 |
7 | $_COOKIE 一个关联数组,其中包含通过HTTP cookie传递给当前脚本的变量。 |
8 | $_SESSION 一个包含当前脚本可用的会话变量的关联数组。 |
9 | $_PHP_SELF 一个包含调用它的PHP脚本文件名的字符串。 |
10 | $php_errormsg $php_errormsg 是一个包含由PHP生成的最后一个错误消息的文本的变量。 |
服务器变量:$_SERVER
$_SERVER是一个包含头部信息、路径和脚本位置等相关信息的数组。这个数组的条目是由Web服务器创建的。并不能保证每个Web服务器都提供这些信息。
序号 | 变量&描述 |
---|---|
1 | $_SERVER['PHP_SELF'] 当前执行脚本的文件名,相对于文档根目录 |
2 | $_SERVER['argv'] 传递给脚本的参数数组。当脚本在命令行上运行时,这样可以以C语言方式访问命令行参数。当使用GET方法调用时,它将包含查询字符串。 |
3 | $_SERVER['argc'] 如果在命令行上运行,包含传递给脚本的命令行参数数量。 |
4 | $_SERVER['GATEWAY_INTERFACE'] 服务器使用的CGI规范修订版,即’CGI/1.1’。 |
5 | $_SERVER['SERVER_ADDR'] 当前脚本执行的服务器的IP地址。 |
6 | $_SERVER['SERVER_NAME'] 当前脚本执行的服务器主机名。如果脚本在虚拟主机上运行,则为该虚拟主机定义的值。 |
7 | $_SERVER['SERVER_SOFTWARE'] 在响应请求时在头文件中给出的服务器标识字符串。 |
8 | $_SERVER['SERVER_PROTOCOL'] 发出页面请求的信息协议的名称和修订版本;例如:’HTTP/1.0’; |
9 | $_SERVER['REQUEST_METHOD'] 哪种请求方法用于访问页面; 如’GET’、’HEAD’、’POST’、’PUT’。 |
10 | $_SERVER['REQUEST_TIME'] 请求开始的时间戳。PHP 5.1.0之后可用。 |
11 | $_SERVER['QUERY_STRING'] 查询字符串,如果有的话,用于访问页面。 |
12 | $_SERVER['DOCUMENT_ROOT'] 当前脚本正在执行的文档根目录,如在服务器配置文件中定义。 |
13 | $_SERVER['HTTP_ACCEPT'] 当前请求的Accept:标头的内容,如果有的话。 |
14 | $_SERVER['HTTP_ACCEPT_CHARSET'] |
15 | $_SERVER['HTTP_ACCEPT_ENCODING'] 当前请求的Accept-Encoding头的内容,如果有的话。例如:’gzip’。 |
16 | $_SERVER['HTTP_ACCEPT_LANGUAGE'] 当前请求的Accept-Language头的内容,如果有的话。例如:’en’。 |
17 | $_SERVER['HTTP_CONNECTION'] 当前请求的Connection头的内容,如果有的话。例如:’Keep-Alive’。 |
18 | $_SERVER['HTTP_HOST'] 当前请求的Host头的内容,如果有的话。 |
19 | $_SERVER['HTTP_REFERER'] 表示用户代理引导用户访问当前页面的页面的地址(如果有)。 |
20 | $_SERVER['HTTP_USER_AGENT'] 这是一个字符串,表示正在访问页面的用户代理。一个典型的示例是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。 |
21 | $_SERVER['HTTPS'] 如果脚本通过HTTPS协议查询,则设置为非空值。 |
22 | $_SERVER['REMOTE_ADDR'] 用户正在查看当前页面的IP地址。 |
23 | $_SERVER['REMOTE_HOST'] 用户正在查看当前页面的主机名。反向DNS查找基于用户的REMOTE_ADDR。 |
24 | $_SERVER['REMOTE_PORT'] 用户机器上与Web服务器通信所使用的端口。 |
25 | $_SERVER['SCRIPT_FILENAME'] 当前执行的脚本的绝对路径名。 |
26 | $_SERVER['SERVER_ADMIN'] Web服务器配置文件中提供给SERVER_ADMIN(适用于Apache)指令的值。 |
27 | $_SERVER['SERVER_PORT'] Web服务器用于通信的服务器机器上的端口。对于默认配置,这将是’80’。 |
28 | $_SERVER['SERVER_SIGNATURE'] 包含服务器版本和虚拟主机名的字符串,如果启用,将添加到服务器生成的页面中。 |
29 | $_SERVER['PATH_TRANSLATED'] 基于文件系统的当前脚本路径。 |
30 | $_SERVER['SCRIPT_NAME'] 包含当前脚本的路径。这对于需要指向自身的页面很有用。 |
31 | $_SERVER['REQUEST_URI'] 访问此页面时提供的URI;例如,’/index.html’。 |
32 | $_SERVER[‘PHP_AUTH_DIGEST’] 当以Apache模块的方式运行时,执行摘要HTTP身份验证时,此变量被设置为客户端发送的’Authorization’头。 |
33 | $_SERVER['PHP_AUTH_USER'] 当以Apache或IIS(在PHP 5上为ISAPI)模块的方式运行时进行HTTP身份验证时,此变量被设置为用户提供的用户名。 |
34 | $_SERVER['PHP_AUTH_PW'] Apache或IIS(在PHP 5上为ISAPI模块)下进行HTTP认证时,此变量被设置为用户提供的密码。 |
35 | $_SERVER['AUTH_TYPE'] 在Apache作为模块进行HTTP认证时,此变量被设置为认证类型。 |