您的位置:首页 > 编程语言 > PHP开发

【php手册:变量】预定义变量

2018-01-03 14:16 225 查看
预定义变量  将所有的外部变量表示成内建环境变量,并且将错误信息表示成返回头。超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
$GLOBALS — 引用全局作用域中可用的全部变量
$_SERVER — 服务器和执行环境信息
$_GET — HTTP GET 变量
$_POST — HTTP POST 变量
$_FILES — HTTP 文件上传变量
$_REQUEST — HTTP Request 变量
$_SESSION — Session 变量
$_ENV — 环境变量
$_COOKIE — HTTP Cookies
$php_errormsg — 前一个错误信息
$HTTP_RAW_POST_DATA — 原生POST数据
$http_response_header — HTTP 响应头
$argc — 传递给脚本的参数数目
$argv — 传递给脚本的参数数组

超全局变量 — 是在全部作用域中始终可用的内置变量
这些超全局变量是:

$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_COOKIE
$_SESSION
$_REQUEST
$_ENV

$GLOBALS — 引用全局作用域中可用的全部变量一个包含了全部变量的全局组合数组。变量的名字就是数组的键

从PHP 5.4开始,$ GLOBALS即时初始化。这意味着不使用$ GLOBALS变量是有好处的,因为可以避免初始化它的开销。

$_SERVER — 服务器和执行环境信息

一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。

'PHP_SELF'当前执行脚本的文件名。例:/index.php。__FILE__当前文件的完整路径和文件名。例:D:\Program Files\phpstudy\WWW\index.php
'argv'传递给该脚本的参数的数组。
'argc'包含命令行模式下传递给该脚本的参数的数目(如果运行在命令行模式下)。
' GATEWAY_INTERFACE '服务器使用的 CGI 规范的版本。

'SERVER_ADDR'当前运行脚本所在的服务器的 IP 地址。例:::1
'SERVER_NAME'当前运行脚本所在的服务器的主机名。例:localhost'SERVER_SOFTWARE'服务器标识字符串,在响应请求时的头信息中给出。'SERVER_PROTOCOL'请求页面时通信协议的名称和版本。'REQUEST_METHOD'访问页面使用的请求方法。例:GET'REQUEST_TIME'请求开始时的时间戳。PHP 5.1.0 'REQUEST_TIME_FLOAT'请求开始时的时间戳,微秒级别的精准度。 PHP 5.4.0 'QUERY_STRING'query string(查询字符串),如果有的话,通过它进行页面访问。'DOCUMENT_ROOT'当前运行脚本所在的文档根目录。例:D:/Program Files/phpstudy/WWW'HTTP_ACCEPT'当前请求头中 Accept: 项的内容,如果存在的话。'HTTP_ACCEPT_CHARSET'当前请求头中 Accept-Charset: 项的内容,如果存在的话。'HTTP_ACCEPT_ENCODING'当前请求头中 Accept-Encoding: 项的内容,如果存在的话。'HTTP_ACCEPT_LANGUAGE'当前请求头中 Accept-Language: 项的内容,如果存在的话。'HTTP_CONNECTION'当前请求头中 Connection: 项的内容,如果存在的话。'HTTP_HOST'当前请求头中 Host: 项的内容,如果存在的话。例:localhost'HTTP_REFERER'引导用户代理到当前页的前一页的地址(如果存在)。'HTTP_USER_AGENT'当前请求头中 User-Agent: 项的内容,如果存在的话。该字符串表明了访问该页面的用户代理的信息。'HTTPS'如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。'REMOTE_ADDR'浏览当前页面的用户的 IP 地址。例:::1'REMOTE_HOST'浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。'REMOTE_PORT'用户机器上连接到 Web 服务器所使用的端口号。'REMOTE_USER'经验证的用户'REDIRECT_REMOTE_USER'验证的用户,如果请求已在内部重定向。'SCRIPT_FILENAME'当前执行脚本的绝对路径。例:D:/Program Files/phpstudy/WWW/index.php'SERVER_ADMIN'该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。例:admin@phpStudy.net'SERVER_PORT'Web 服务器使用的端口。默认值为 “80”。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。'SERVER_SIGNATURE'包含了服务器版本和虚拟主机名的字符串。'PATH_TRANSLATED'当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。'SCRIPT_NAME'包含当前脚本的路径。例:/index.php'REQUEST_URI'URI 用来指定要访问的页面。例:/'PHP_AUTH_DIGEST'当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization” HTTP 头内容(以便作进一步的认证操作)。'PHP_AUTH_USER'当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。'PHP_AUTH_PW'当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。'AUTH_TYPE'当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。'PATH_INFO'包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话。'ORIG_PATH_INFO'在被 PHP 处理之前,“PATH_INFO” 的原始版本。
#Example1 <?php$indicesServer = array('PHP_SELF', 
'argv', 
'argc', 
'GATEWAY_INTERFACE', 
'SERVER_ADDR', 
'SERVER_NAME', 
'SERVER_SOFTWARE', 
'SERVER_PROTOCOL', 
'REQUEST_METHOD', 
'REQUEST_TIME', 
'REQUEST_TIME_FLOAT', 
'QUERY_STRING', 
'DOCUMENT_ROOT', 
'HTTP_ACCEPT', 
'HTTP_ACCEPT_CHARSET', 
'HTTP_ACCEPT_ENCODING', 
'HTTP_ACCEPT_LANGUAGE', 
'HTTP_CONNECTION', 
'HTTP_HOST', 
'HTTP_REFERER', 
'HTTP_USER_AGENT', 
'HTTPS', 
'REMOTE_ADDR', 
'REMOTE_HOST', 
'REMOTE_PORT', 
'REMOTE_USER', 
'REDIRECT_REMOTE_USER', 
'SCRIPT_FILENAME', 
'SERVER_ADMIN', 
'SERVER_PORT', 
'SERVER_SIGNATURE', 
'PATH_TRANSLATED', 
'SCRIPT_NAME', 
'REQUEST_URI', 
'PHP_AUTH_DIGEST', 
'PHP_AUTH_USER', 
'PHP_AUTH_PW', 
'AUTH_TYPE', 
'PATH_INFO', 
'ORIG_PATH_INFO') ; 

echo '<table cellpadding="10">' ; 
foreach ($indicesServer as $arg) { 
    if (isset($_SERVER[$arg])) { 
        echo '<tr><td>'.$arg.'</td><td>' . $_SERVER[$arg] . '</td></tr>' ;
    } 
    else { 
        echo '<tr><td>'.$arg.'</td><td>-</td></tr>' ; 
    } 

echo '</table>' ; 

Output:(针对于我目前的电脑和文件)
PHP_SELF/index.php
argv-
argc-
GATEWAY_INTERFACECGI/1.1
SERVER_ADDR::1
SERVER_NAMElocalhost
SERVER_SOFTWAREApache/2.4.23 (Win32) OpenSSL/1.0.2j mod_fcgid/2.3.9
SERVER_PROTOCOLHTTP/1.1
REQUEST_METHODGET
REQUEST_TIME1514962667
REQUEST_TIME_FLOAT1514962667.5661
QUERY_STRING 
DOCUMENT_ROOTD:/Program Files/phpstudy/WWW
HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
HTTP_ACCEPT_CHARSET-
HTTP_ACCEPT_ENCODINGgzip, deflate, br
HTTP_ACCEPT_LANGUAGEzh-CN,zh;q=0.9
HTTP_CONNECTIONclose
HTTP_HOSTlocalhost
HTTP_REFERER-
HTTP_USER_AGENTMozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
HTTPS-
REMOTE_ADDR::1
REMOTE_HOST-
REMOTE_PORT52371
REMOTE_USER-
REDIRECT_REMOTE_USER-
SCRIPT_FILENAMED:/Program Files/phpstudy/WWW/index.php
SERVER_ADMINadmin@phpStudy.net
SERVER_PORT80
SERVER_SIGNATURE 
PATH_TRANSLATED-
SCRIPT_NAME/index.php
REQUEST_URI/
PHP_AUTH_DIGEST-
PHP_AUTH_USER-
PHP_AUTH_PW-
AUTH_TYPE-
PATH_INFO-
ORIG_PATH_INFO-
$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] #传递给该脚本的参数。
$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串,在响应请求时的头部中给出。
$_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
$_SERVER['QUERY_STRING'] #查询(query)的字符串。
$_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。
$_SERVER['HTTP_ACCEPT'] #当前请求的 Accept: 头部的内容。
$_SERVER['HTTP_ACCEPT_CHARSET'] #当前请求的 Accept-Charset: 头部的内容。例如:“iso-8859-1,*,utf-8”。
$_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。
$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language: 头部的内容。例如:“en”。
$_SERVER['HTTP_CONNECTION'] #当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
$_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容。
$_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。
$_SERVER['HTTPS'] — 如果通过https访问,则被设为一个非空的值(on),否则返回off
$_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。
$_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名。
$_SERVER['REMOTE_PORT'] #用户连接到服务器时所使用的端口。
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN'] #管理员信息
$_SERVER['SERVER_PORT'] #服务器所使用的端口
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如,“/index.html”。
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: