PHP 有 9 个超全局变量:
$_SERVER、$_GET、$_POST、$_REQUEST、$_COOKIE、$_SESSION、$_FILES、$_ENV、$GLOBALS
1. $_SERVER
$_SERVER是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(scriptlocations)等等信息的数组。这个数组中的项目由Web服务器创建
$_SERVER变量中的重要元素:
元素/代码 | 描述 |
---|---|
$_SERVER['PHP_SELF'] | 返回当前执行脚本的文件名。 |
$_SERVER['GATEWAY_INTERFACE'] | 返回服务器使用的 CGI 规范的版本。 |
$_SERVER['SERVER_ADDR'] | 返回当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER['SERVER_NAME'] | 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。 |
$_SERVER['SERVER_SOFTWARE'] | 返回服务器标识字符串(比如 Apache/2.2.24)。 |
$_SERVER['SERVER_PROTOCOL'] | 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。 |
$_SERVER['REQUEST_METHOD'] | 返回访问页面使用的请求方法(例如 POST)。 |
$_SERVER['REQUEST_TIME'] | 返回请求开始时的时间戳(例如 1577687494)。 |
$_SERVER['QUERY_STRING'] | 返回查询字符串,如果是通过查询字符串访问此页面。 |
$_SERVER['HTTP_ACCEPT'] | 返回来自当前请求的请求头。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1) |
$_SERVER['HTTP_HOST'] | 返回来自当前请求的 Host 头。 |
$_SERVER['HTTP_REFERER'] | 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。 |
$_SERVER['HTTPS'] | 是否通过安全 HTTP 协议查询脚本。 |
$_SERVER['REMOTE_ADDR'] | 返回浏览当前页面的用户的 IP 地址。 |
$_SERVER['REMOTE_HOST'] | 返回浏览当前页面的用户的主机名。 |
$_SERVER['REMOTE_PORT'] | 返回用户机器上连接到 Web 服务器所使用的端口号。 |
$_SERVER['SCRIPT_FILENAME'] | 返回当前执行脚本的绝对路径。 |
$_SERVER['SERVER_ADMIN'] | 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。 |
$_SERVER['SERVER_PORT'] | Web 服务器使用的端口。默认值为 “80”。 |
$_SERVER['SERVER_SIGNATURE'] | 返回服务器版本和虚拟主机名。 |
$_SERVER['PATH_TRANSLATED'] | 当前脚本所在文件系统(非文档根目录)的基本路径。 |
$_SERVER['SCRIPT_NAME'] | 返回当前脚本的路径。 |
$_SERVER['SCRIPT_URI'] | 返回当前页面的 URI。 |
示例:
<?php
print_r($_SERVER);
?>
Array
(
[USER] => www
[HOME] => /home/www
[HTTP_COOKIE] => PHPSESSID=c3c22fb919e4a114a490ba0b577eae6b;
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
[HTTP_ACCEPT_ENCODING] => gzip, deflate, br
[HTTP_SEC_CH_UA_PLATFORM] => "Windows"
[HTTP_SEC_CH_UA_MOBILE] => ?0
[HTTP_SEC_CH_UA] => "Not?A_Brand";v="8", "Chromium";v="108", "Microsoft Edge";v="108"
[HTTP_SEC_FETCH_DEST] => document
[HTTP_SEC_FETCH_USER] => ?1
[HTTP_SEC_FETCH_MODE] => navigate
[HTTP_SEC_FETCH_SITE] => none
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[HTTP_CONNECTION] => keep-alive
[HTTP_HOST] => mdeve.com
[REDIRECT_STATUS] => 200
[SERVER_NAME] => b1.mdeve.com
[SERVER_PORT] => 443
[SERVER_ADDR] => 10.0.0.1
[REMOTE_PORT] => 54791
[REMOTE_ADDR] => 118.120.84.95
[SERVER_SOFTWARE] => nginx/1.22.1
[GATEWAY_INTERFACE] => CGI/1.1
[HTTPS] => on
[REQUEST_SCHEME] => https
[SERVER_PROTOCOL] => HTTP/1.1
[DOCUMENT_ROOT] => /data/www/default/htdocs
[DOCUMENT_URI] => /php.php
[REQUEST_URI] => /php.php
[SCRIPT_NAME] => /php.php
[CONTENT_LENGTH] =>
[CONTENT_TYPE] =>
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[SCRIPT_FILENAME] => /data/www/default/htdocs/php.php
[FCGI_ROLE] => RESPONDER
[PHP_SELF] => /php.php
[REQUEST_TIME_FLOAT] => 1672760853.9455
[REQUEST_TIME] => 1672760853
)
2. $_GET
$_GET 可以获取到使用 get 方法传递的参数的相关信息。
3. $_POST
$_POST 可以获取到使用 post 方法传递的参数的相关信息。
4. $_REQUEST
$_REQUEST 是一个关联数组,默认包含 $_GET、$_POST、$_COOKIE 中的内容。建议不用这个超级变量,因为它不够安全。
5. $_COOKIE
$_COOKIE 是一个关联数组,包含 通过 HTTP cookie 传递给当前脚本的内容。
6. $_SESSION
$_SESSION 是一个关联数组,包含当前脚本中的所有 session 内容。
7. $_FILES
$_FILES 是一个关联数组,包含通过 HTTP POST 方法上传给当前脚本的文件内容。
8. $_EVN
$_ENV 是一个包含服务器端环境变量的数组。
9. $GLOBALS
$GLOBALS 是一个关联数组, 包含对当前脚本全局 范围内定义的所有变量。
文章评论