PHP为运行的脚本提供了大量的预定义变量。 PHP提供了一组额外的预定义数组,包含来自Web服务器环境的变量和用户输入。 这些新的数组被称为超全局变量 -
以下所有变量都在每个PHP代码范围内自动提供。
PHP超全局数组
编号 | 变量 | 描述 |
---|---|---|
1 | $GLOBALS |
包含对脚本全局范围内当前可用的每个变量的引用。 这个数组的键是全局变量的名字。 |
2 | $_SERVER |
这是包含标头,路径和脚本位置等信息的数组。 该数组中的条目由Web服务器创建。 不能保证每个Web服务器都会提供这些服务器。 请参阅下一节以获取所有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'] |
当前请求中的Accept-Charset: 标头的内容(如果有的话)。 例:'iso-8859-1,*,utf-8' |
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认证的模块运行时,该变量被设置为由客户端发送的“授权”报头。 |
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认证时,这个变量被设置为认证类型。 |
下面这个示例代码,将打印当前$_SERVER
的所有键和值,如下所示 -
<h2>$_SERVER Key & Value</h2>
<?php
foreach($_SERVER as $key => $value){
echo "{$key} => {$value} <br/>";
}
?>
执行上面示例代码,得到以下结果 -
$_SERVER Key & Value
HTTP_HOST => localhost
HTTP_USER_AGENT => Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
HTTP_ACCEPT => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE => en-US,en;q=0.5
HTTP_ACCEPT_ENCODING => gzip, deflate
HTTP_CONNECTION => keep-alive
HTTP_UPGRADE_INSECURE_REQUESTS => 1
PATH => D:Program FilesPython36Scripts;D:Program FilesPython36;E:oracle11gAdministratorproduct11.2.0dbhome_1in;C:ProgramDataOracleJavajavapath;C:WINDOWSSYSTEM32;C:WINDOWS;C:WINDOWSSYSTEM32WBEM;C:WINDOWSSYSTEM32WINDOWSPOWERSHELLV1.0;C:PROGRAM FILES (X86)INTELSERVICESIPT;C:PROGRAM FILESBROADCOMWHL;C:PROGRAM FILESBROADCOMWHLSYSWOW64;C:PROGRAM FILESBROADCOMWHLSYSWOW64;C:PROGRAM FILESBROADCOMWHLSYSWOW64SYSWOW64;D:PROGRAM FILESTORTOISESVNBIN;D:Program FilesJavajdk1.8.0_65;D:Program FilesJavajdk1.8.0_65in;D:softwareapache-maven-3.3.9in;D:Program Files
odejs;%ANDROID_HOME% ools;%ANDROID_HOME%platform-tools;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;D:wampinphpphp5.6.16;C:ProgramDataComposerSetupin;C:UsersAdministratorAppDataRoamingComposervendorin;D:Program Fileserl8.0in;C:WINDOWSsystem32configsystemprofileAppDataLocalMicrosoftWindowsApps
SystemRoot => C:WINDOWS
COMSPEC => C:WINDOWSsystem32cmd.exe
PATHEXT => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PYW
WINDIR => C:WINDOWS
SERVER_SIGNATURE =>
Apache/2.4.17 (Win64) PHP/7.0.0 Server at localhost Port 80
SERVER_SOFTWARE => Apache/2.4.17 (Win64) PHP/7.0.0
SERVER_NAME => localhost
SERVER_ADDR => ::1
SERVER_PORT => 80
REMOTE_ADDR => ::1
DOCUMENT_ROOT => D:/wamp/www
REQUEST_SCHEME => http
CONTEXT_PREFIX =>
CONTEXT_DOCUMENT_ROOT => D:/wamp/www
SERVER_ADMIN => admin@example.com
SCRIPT_FILENAME => D:/wamp/www/index.php
REMOTE_PORT => 52687
GATEWAY_INTERFACE => CGI/1.1
SERVER_PROTOCOL => HTTP/1.1
REQUEST_METHOD => GET
QUERY_STRING =>
REQUEST_URI => /index.php
SCRIPT_NAME => /index.php
PHP_SELF => /index.php
REQUEST_TIME_FLOAT => 1516243049.579
REQUEST_TIME => 1516243049