php 超全局变量(整理)
一、$GLOBALS
在GLOBALS数组中,每一个变量为一个元素,键名对于变量名,值对于变量的内。
GLOBALS之所以在全局范围内存在,是因为GLOBALS是一个超全局变量,GLOBALS的写法: 如变量 b,写法为 GLOBALS['b'] 。
二、$_SERVER
$_SERVER 是一个包含例如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每一个服务器 都提供全部项目; 服务器 可能会忽略一些,或者提供一些没有在这里列举出来的项目。
1 $_SERVER['HTTP_HOST'] 请求头信息中的Host内容,获取当前域名。 2 $_SERVER["SERVER_NAME"] 输出配置文件httpd.conf中的ServerName,一般情况下与HTTP_HOST值相同,但如果服务器端口不是默认的80端口,或者协议规范不是HTTP/1.1时,HTTP_HOST会包含这些信息,而SERVER_NAME不一定包含。(主要看配置文件的设置)。 3 $_SERVER["HTTP_USER_AGENT"] 获取用户相关信息,包括用户浏览器、操作系统等信息。 4 $_SERVER['HTTP_ACCEPT'] 当前请求的ACCEPT头部信息。 5 $_SERVER["HTTP_ACCEPT_LANGUAGE"] 这个值是由浏览器发送,表明用户默认的语言设置,后面的q值表示用户对该语言的喜好程度。 6 $_SERVER["HTTP_ACCEPT_ENCODING"] 大部分的现代浏览器都支持gzip压缩,并会把这一信息报告给服务器。这时服务器就会压缩过的HTML发送给浏览器。这可以减少近80%的文件大小,以节省下载时间和带宽。 7 $_SERVER["HTTP_COOKIE"] 浏览器的cookie信息。 8 $_SERVER["HTTP_CONNECTION"] 当前请求的连接情况。 9 $_SERVER["HTTP_UPGRADE_INSECURE_REQUESTS"] 表示浏览器可读懂服务器发过来的请求, 10 $_SERVER["HTTP_CACHE_CONTROL"] 表示浏览器是否会缓存这个页面信息。 11 $_SERVER["PATH"] 当前脚本所在文件系统。 12 $_SERVER["SystemRoot"] 当前服务器的操作系统。 13 $_SERVER["COMSPEC"] 指向cmd.exe的路径。 14 $_SERVER["PATHEXT"] 环境变量设置。 15 $_SERVER["WINDIR"] 脚本指向的系统目录。 16 $_SERVER["SERVER_SIGNATURE"] 包含服务器版本和虚拟主机名的字符串。 17 $_SERVER["SERVER_SOFTWARE"] 服务器软件配置信息。 18 $_SERVER["SERVER_ADDR"] 当前运行脚本的服务器的ip地址。 19 $_SERVER["SERVER_PORT"] 服务器端口。 20 $_SERVER["REMOTE_ADDR"] 浏览网页的用户ip。 21 $_SERVER["DOCUMENT_ROOT"] 当前运行脚本所在的根目录。 22 $_SERVER["REQUEST_SCHEME"] 服务器通信协议,是http或https。 23 $_SERVER["CONTEXT_PREFIX"] 前缀。 24 $_SERVER["CONTEXT_DOCUMENT_ROOT"] 当前脚本所在的文档根目录。 25 $_SERVER["SERVER_ADMIN"] 服务器管理员信息。 26 $_SERVER["SCRIPT_FILENAME"] 当前执行脚本的绝对路径。 27 $_SERVER ["REMOTE_PORT"] 用户连接到服务器时所使用的端口。 28 $_SERVER["GATEWAY_INTERFACE"] 服务器使用的CGI规范的版本。 29 $_SERVER["SERVER_PROTOCOL"] 请求页面时通信协议的名称和版本。 30 $_SERVER["REQUEST_METHOD"] 请求提交数据的方式。 31 $_SERVER["QUERY_STRING"] 服务器请求时?后面的参数。 32 $_SERVER["REQUEST_URI"] 当前脚本路径,根目录之后的目录。 33 $_SERVER["SCRIPT_NAME"] 当前脚本的路径。这在页面需要指向自己时非常有用。 34 $_SERVER["PHP_SELF"] 当前正在执行脚本的文件名。 35 $_SERVER["REQUEST_TIME"] 得到请求开始时的时间戳。
三、$_REQUEST
$_REQUEST用于存储 $_POST 和 $_GET 的数据总和,他们之间是相互独立的。 - $_REQUEST[ "name" ]
如果 unset 掉 $_GET 或者 $_POST ,$_REQUEST 数组中的所存储的数据都不会发生改变。 当 $_POST和$_GET中都有同名元素时,$_REQUEST所存储的数据会依据php配置文件 php.ini 中配置的 request_order = "GP" (默认)来决定先存储GET数据再存储POST数据,最终的结果是POST数据覆盖掉了GET数据。如果改变 request_order = "PG",结果你会反来。
四、$_POST 和 $_GET
$_POST 用于收集 HTML 表单 method = "post" 方式提交的数据。 $_POST 也常用于传递变量。 - $_POST[ "name" ]
$_GET 用于收集 HTML 表单 method = "get" 方式提交的数据。 $_POST 也常用于收集 URL 中发送的数据。 - $_GET[ "name" ]
五、$_FILES
$_FILES 用于获取上传的文件,用法:
1 html文件: <input type="file" name="myFile"> 2 $_FILES['myFile']['name'] 显示客户端文件的原名称。 3 $_FILES['myFile']['type'] 文件的 MIME 类型,例如"image/gif"。 4 $_FILES['myFile']['size'] 已上传文件的大小,单位为字节。 5 $_FILES['myFile']['tmp_name'] 储存的临时文件名,一般是系统默认。 6 $_FILES['myFile']['error'] 该文件上传相关的错误代码。
六、$_ENV
PHP中的$_ENV存储了一些系统的环境变量,因为涉及到实际的操作系统。
七、$COOKIE
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。
语法:$.cookie(名称,值,[option])
(1)读取cookie值
$.cookie(cookieName) ---> cookieName:要读取的cookie名称。
示例:$.cookie("username"); 读取保存在cookie中名为的username的值。
(2)写入设置Cookie值:
$.cookie(cookieName,cookieValue); ---> cookieName:要设置的cookie名称,cookieValue表示相对应的值。
示例:$.cookie("username","admin"); 将值"admin"写入cookie名为username的cookie中。
$.cookie("username",NULL); 销毁名称为username的cookie
(3) [option]参数说明:
expires: 有限日期,可以是一个整数或一个日期(单位:天)。注: 如果不设置这个东西,浏览器关闭之后此cookie就失效了
path: cookie值保存的路径,默认与创建页路径一致。
domin: cookie域名属性,默认与创建页域名一样。 注: 跨域的概念,如果要主域名二级域名有效则要设置 ".xxx.com"
secrue: 一个布尔值,表示传输cookie值时,是否需要一个安全协议。
八、$_SESSION
session的中文译名叫做“会话”,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。
$_SESSION的用法:
session_start( ); ---> 开始一个会话或者返回已经存在的会话。
说明:这个函数没有参数,且返回值均为true。如果你使用基于cookie的session(cookie-based sessions),那么在使用Session_start()之前浏览器不能有任何输出,否则会发生以下错误。
注册session变量: $_SESSION[‘xxx’] = xxx ,注册SESSION全局变量
----- 笔记整理 ----