php

位置:IT落伍者 >> php >> 浏览文章

PHP 超全局变量


发布日期:2019年05月13日
 
PHP 超全局变量

$GLOBALS

包含一个引用指向每个当前脚本的全局范围内有效的变量该数组的键标为全局变量的 名称从 PHP 开始存在 $GLOBALS 数组

$_SERVER

变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效但反对使用)

$_GET

经由 HTTP GET 方法提交至脚本的变量类似于旧数组 $HTTP_GET_VARS 数组(依然有效但反对使用)

$_POST

经由 HTTP POST 方法提交至脚本的变量类似于旧数组 $HTTP_POST_VARS 数组(依然有效但反对使用)

$_COOKIE

经由 HTTP Cookies 方法提交至脚本的变量类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效但反对使用)

$_FILES

经由 HTTP POST 文件上传而提交至脚本的变量类似于旧数组 $HTTP_POST_FILES 数组(依然有效但反对使用)详细信息请参阅 POST 方法上传

$_ENV

执行环境提交至脚本的变量类似于旧数组 $HTTP_ENV_VARS 数组(依然有效但反对使用)

$_REQUEST

经由 GETPOST 和 COOKIE 机制提交至脚本的变量因此该数组并不值得信任所有包含在该数组中的变量的存在与否以及变量的顺序均按照 phpini 中的 variables_order 配置指示来定义该数组没有直接模拟 PHP 的早期版本参见

******自 PHP $_FILES 中的文件信息不再存在于 $_REQUEST 中*****

$_SESSION

当前注册给脚本会话的变量类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效但反对使用)

服务器变量 $_SERVER 详解

$_SERVER [PHP_SELF] 获取当前正在执行脚本的文件名

$_SERVER[SERVER_PROTOCOL] 请求页面时通信协议的名称和版本例如HTTP/

$_SERVER[REQUEST_TIME] 请求开始时的时间戳从 PHP 起有效和time函数效果一样

$_SERVER[argv] 传递给该脚本的参数我试了下get方法可以得到$_SERVER[argv][]post方法无法给他赋值

$_SERVER[SERVER_NAME] 返回当前主机名

$_SERVER[SERVER_SOFTWARE] 服务器标识的字串在响应请求时的头信息中给出 如MicrosoftIIS/

$_SERVER[REQUEST_METHOD] 访问页面时的请求方法例如GETHEADPOSTPUT

$_SERVER[QUERY_STRING] 查询(query)的字符串(URL 中第一个问号 ? 之后的内容)

$_SERVER[DOCUMENT_ROOT] 当前运行脚本所在的文档根目录在服务器配置文件中定义 如E:\server

$_SERVER[HTTP_ACCEPT] 当前请求的 Accept: 头信息的内容

$_SERVER[HTTP_ACCEPT_CHARSET] 当前请求的 AcceptCharset: 头信息的内容例如iso*utf

$_SERVER[HTTP_ACCEPT_ENCODING] 当前请求的 AcceptEncoding: 头信息的内容例如gzip

$_SERVER[HTTP_ACCEPT_LANGUAGE] 当前请求的 AcceptLanguage: 头信息的内容例如en

$_SERVER[HTTP_CONNECTION] 当前请求的 Connection: 头信息的内容例如KeepAlive

$_SERVER[HTTP_HOST] 当前请求的 Host: 头信息的内容

$_SERVER[HTTP_REFERER] 链接到当前页面的前一页面的 URL 地址不是所有的用户代理(浏览器)都会设置这个变量而且有的还可以手工修改 HTTP_REFERER因此这个变量不总是正确真实的

$_SERVER[HTTP_USER_AGENT] 返回用户使用的浏览器信息一个典型的例子是Mozilla/ [en] (X; U; Linux i)也可以使用 get_browser() 得到此信息

$_SERVER[HTTPS] 如果通过https访问则被设为一个非空的值否则返回off

$_SERVER[REMOTE_ADDR] 正在浏览当前页面用户的 IP 地址

$_SERVER[REMOTE_HOST] 正在浏览当前页面用户的主机名反向域名解析基于该用户的 REMOTE_ADDR如本地测试返回

$_SERVER[REMOTE_PORT] 用户连接到服务器时所使用的端口我在本机测试没通过不知道什么原因

$_SERVER[SCRIPT_FILENAME] 当前执行脚本的绝对路径名如返回E:\server\indexphp

$_SERVER[SERVER_ADMIN] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数如果脚本运行在一个虚拟主机上则该值是那个虚拟主机的值

$_SERVER[SERVER_PORT] 服务器所使用的端口默认为如果使用 SSL 安全连接则这个值为用户设置的 HTTP 端口

$_SERVER[SERVER_SIGNATURE] 包含服务器版本和虚拟主机名的字符串

$_SERVER[PATH_TRANSLATED] 当前脚本所在文件系统(不是文档根目录)的基本路径这是在服务器进行虚拟到真实路径的映像后的结果 Apache 用 户可以使用  中的 AcceptPathInfo On 来定义 PATH_INFO

$_SERVER[SCRIPT_NAME] 包含当前脚本的路径这在页面需要指向自己时非常有用__FILE__ 包含当前文件的绝对路径和文件名(例如包含文件)

$_SERVER[REQUEST_URI] 访问此页面所需的 URI例如/l

$_SERVER[PHP_AUTH_DIGEST] 当作为 Apache 模块运行时进行 HTTP Digest 认证的过程中此变量被设置成客户端发送的AuthorizationHTTP 头内容(以便作进一步的认证操作)

$_SERVER[PHP_AUTH_USER] 当 PHP 运行在 Apache 或 IIS(PHP 是 ISAPI)模块方式下并且正在使用 HTTP 认证功能这个变量便是用户输入的用户名

$_SERVER[PHP_AUTH_PW] 当 PHP 运行在 Apache 或 IIS(PHP 是 ISAPI)模块方式下并且正在使用 HTTP 认证功能这个变量便是用户输入的密码

$_SERVER[AUTH_TYPE]当 PHP 运行在 Apache 模块方式下并且正在使用 HTTP 认证功能这个变量便是认证的类型

PHP预定义全局变量$_FILES详解

经由 HTTP POST 文件上传而提交至脚本的变量类似于旧数组 $HTTP_POST_FILES 数组(依然有效但反对使用)详细信息请参阅 POST 方法上传

$_FILES数组内容如下:

<input type=file name=userfile>

$_FILES[userfile][name] 客户端机器文件的原名称

$_FILES[userfile][type] 文件的 MIME 类型需要浏览器提供该信息的支持例如image/gif

$_FILES[userfile][size] 已上传文件的大小单位为字节

$_FILES[userfile][tmp_name]文件被上传后在服务端储存的临时文件名

$_FILES[userfile][error]和该文件上传相关的错误代码[error] 是在 PHP 版本中增加的

注: 在 PHP 版本以前该数组的名称为 $HTTP_POST_FILES它并不像 $_FILES 一样是自动全局变量PHP 不支持 $HTTP_POST_FILES 数组

               

上一篇:PHP简单验证码类:字母+数字 字体随机扭曲

下一篇:PHP实现插入排序算法