PHP 全局变量

2023年01月03日 1595点热度 0人点赞 0条评论

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 是一个关联数组, 包含对当前脚本全局 范围内定义的所有变量。

路灯

这个人很懒,什么都没留下

文章评论