PHP预定义变量

广告位

PHP为运行的脚本提供了大量的预定义变量。 PHP提供了一组额外的预定义数组,包含来自Web服务器环境的变量和…

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'] 使用哪种请求方法访问页面; 即:GETHEADPOSTPUT
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  

哥,这回真没有了

贺, 贺朝

关于作者: 贺朝

为您推荐