PHP $_SERVER详解
$_SERVER 数组中的元素由 Web 服务器创建,但不能保证每个服务器都提供全部元素,有的服务器可能会忽略一些,或者提供一些没有在这里列举出来的元素。
$_SERVER数组部分元素如表所示。
数组元素 | 说明 |
---|---|
$_SERVER['PHP_SELF'] | 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://c.biancheng.net/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar |
$_SERVER['SERVER_ADDR'] | 当前运行脚本所在服务器的 IP 地址 |
$_SERVER['SERVER_NAME'] | 当前运行脚本所在服务器的主机名。如果脚本运行于虚拟主机中,该名称就由那个虚拟主机所设置的值决定 |
$_SERVER['SERVER_PROTOCOL'] | 请求页面时通信协议的名称和版本。例如,“HTTP/1.0” |
$_SERVER['REQUEST_METHOD'] | 访问页面使用的请求方法。例如“GET”“HEAD”“POST”“PUT” |
$_SERVER['DOCUMENT_ROOT'] | 当前运行脚本所在的文档根目录。在服务器配置文件中定义 |
$_SERVER['HTTP_ACCEPT_LANGUAGE'] | 当前请求头中 Accept-Language: 项的内容(如果存在)。例如,“en” |
$_SERVER['REMOVE_ADDR'] | 浏览当前页面的用户 IP 地址,注意与 $_SERVER['SERVER_ADDR'] 的区别 |
$_SERVER['SCRIPT_FILENAME'] | 当前执行脚本的绝对路径 |
$_SERVER['SCRIPT_NAME'] | 包含当前脚本的路径 |
$_SERVER['REQUEST_URI'] | URI 用来指定要访问的页面。例如,“index.html” |
$_SERVER['PATH_INFO'] | 包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息(如果存在)。例如,当前脚本是通过 URL http://c.biancheng.net/php/path_info.php/some/stuff?foo=bar 被访问的,那么 $_SERVER['PATH_INFO'] 将包含 /some/stuff |
在浏览器打印出 $_SERVER 数组的代码如下:
<?php print_r($_SERVER); ?>浏览器的输出结果如下:
Array
(
[HTTP_HOST] => localhost
[HTTP_CONNECTION] => keep-alive
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9, image/webp,*/*;q=0.8
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
[HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8
[HTTP_COOKIE] => PHPSESSID=e1bbc84e23bf85691e7c5a4ab07ee0de; pgv_pvi=4369311744; pgv_si=s1775918080; CNZZDATA155540=cnzz_eid%3D1811041545- 1463297631-%26ntime%3D1463303031
[PATH] => /usr/bin:/bin:/usr/sbin:/sbin
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache/2.4.16 (Unix) PHP/7.0.5
[SERVER_NAME] => localhost
[SERVER_ADDR] => ::1
[SERVER_PORT] => 80
[REMOTE_ADDR] => ::1
[DOCUMENT_ROOT] => /Library/WebServer/Documents
[REQUEST_SCHEME] => http
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => /Library/WebServer/Documents
[SERVER_ADMIN] => you@example.com
[SCRIPT_FILENAME] => /Library/WebServer/Documents/book/str.php
[REMOTE_PORT] => 59377
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /book/str.php
[SCRIPT_NAME] => /book/str.php
[PHP_SELF] => /book/str.php
[REQUEST_TIME_FLOAT] => 1463828978.149
[REQUEST_TIME] => 1463828978
[argv] => Array
(
)
[argc] => 0
)