资讯专栏INFORMATION COLUMN

PHP 的 $_SERVER详解

seanlook / 425人阅读

摘要:导语是预定义的超全局变量。测试是在下进行的,环境为,访问域名为,文件目录在。上下文有安全性要求的环境里,不应该依赖此值。在实际工作中,有很多作用,这里只举两个简单实例,获取当前请求以及简单防盗链当前是否为协议,前一页面的参考资料手册消息头

导语

$_SERVER 是PHP预定义的超全局变量。所谓“超全局变量”,即在脚本全部作用域中都可以使用,$_SERVER保存关于报头、路径和脚本位置的信息。工作中经常忘记,在此整理记录下,加深印象。测试是在Windows下进行的,环境为Apache/2.4.23 (Win32)+PHP/5.6.27-nts,访问域名为http://www.example.com/index....,文件目录在E:/WWW/example/

主要内容详解

$_SERVER["SCRIPT_NAME"] => "/index.php",当前脚本路径

$_SERVER["REQUEST_URI"] => "/index.php?id=1",访问的页面URI,包含查询字符串

$_SERVER["QUERY_STRING"] => "id=1",查询字符串,不存在为" "

$_SERVER["REQUEST_METHOD"] => "GET",请求方法,如"POST"、"PUT"等

$_SERVER["SERVER_PROTOCOL"] => "HTTP/1.1",通信协议的名称和版本

$_SERVER["GATEWAY_INTERFACE"] => "CGI/1.1",服务器使用的CGI 规范的版本

$_SERVER["REMOTE_PORT"] => "60599",用户连接服务器使用的端口

$_SERVER["SCRIPT_FILENAME"] => "E:/WWW/example/index.php",当前脚本的绝对路径

$_SERVER["DOCUMENT_ROOT"] => "E:/WWW/example/",当前脚本文档根目录的绝对路径

$_SERVER["REMOTE_ADDR"] => "127.0.0.1",用户的IP地址

$_SERVER["SERVER_PORT"] => "80",服务器使用的端口

$_SERVER["SERVER_ADDR"] => "127.0.0.1",服务器的IP地址

$_SERVER["SERVER_NAME"] => "www.example.com",服务器的主机名,注:如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。在 Apache 2 里,必须设置 UseCanonicalName = On 和 ServerName。 否则该值会由客户端提供,就有可能被伪造。 上下文有安全性要求的环境里,不应该依赖此值。

$_SERVER["SERVER_SOFTWARE"] => "Apache/2.4.23 (Win32) OpenSSL/1.0.2j mod_fcgid/2.3.9",响应头中Server的内容

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

$_SERVER["HTTP_HOST"] => "www.example.com",请求头中Host项的内容

$_SERVER["HTTP_CONNECTION"] => "keep-alive",请求头中Connection项的内容

$_SERVER["HTTP_PRAGMA"] => "no-cache",请求头中Pragma项的内容

$_SERVER["HTTP_CACHE_CONTROL"] => "no-cache",请求头中Cache-Control项的内容

$_SERVER["HTTP_UPGRADE_INSECURE_REQUESTS"] => "1",请求头中Upgrade-Insecure-Requests项的内容

$_SERVER["HTTP_USER_AGENT"] => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",请求头中User-Agent项的内容

$_SERVER["HTTP_ACCEPT"] => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8",请求头中Accept项的内容

$_SERVER["HTTP_ACCEPT_ENCODING"] => "gzip, deflate",请求头中Accept-Encoding项的内容

$_SERVER["HTTP_ACCEPT_LANGUAGE"] => "zh-CN,zh;q=0.8",请求头中Accept-Language项的内容

$_SERVER["PHP_SELF"] => "/index.php",当前执行脚本的文件名

$_SERVER["REQUEST_TIME_FLOAT"] => 1510112348.8084,请求开始的时间戳,微秒级别精准度

$_SERVER["REQUEST_TIME"] => 1510112348,请求开始的时间戳

实例

以上是测试中的 $_SERVER 的主要内容,根据不同的环境配置,会有些变化。在实际工作中,$_SERVER有很多作用,这里只举两个简单实例,获取当前请求URL以及简单防盗链




参考资料:PHP手册、HTTP消息头

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29927.html

相关文章

  • PHP $_SERVER详解

    摘要:导语是预定义的超全局变量。测试是在下进行的,环境为,访问域名为,文件目录在。上下文有安全性要求的环境里,不应该依赖此值。在实际工作中,有很多作用,这里只举两个简单实例,获取当前请求以及简单防盗链当前是否为协议,前一页面的参考资料手册消息头 导语 $_SERVER 是PHP预定义的超全局变量。所谓超全局变量,即在脚本全部作用域中都可以使用,$_SERVER保存关于报头、路径和脚本位置的信...

    worldligang 评论0 收藏0
  • $_REQUEST 详解

    摘要:设置为,那么将不会创建超全局变量。如果设置为空,则填充的顺序会以配置项中的顺序为准。例如,设置为时,代表将包含和的值,并且当和中的键相同时,的值将覆盖的值。结论的值与中的配置相关。推荐在项目中尽量不要使用,而是明确的从,,中取值。 前言 在平时的开发中,我们可能会遇到以下问题: 通过 $_REQUEST 得到值怎么和与 $_GET 获取到的不同? $_SERVER 的值怎么是空的...

    fai1017 评论0 收藏0
  • Nginx基础篇(2)- Nginx基本配置文件和变量详解

    摘要:基本配置文件和变量详解基本配置文件运行的用户进程数,建议设置为等于总核心数。允许客户端请求的最大单文件字节数。如果主体超过缓冲区大小,则完整主体或其一部分将写入临时文件。该指令在配置的,和区块使用。 Nginx基本配置文件和变量详解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx运行的用户 user nginx; # nginx进程数,建议设置为等于C...

    TZLLOG 评论0 收藏0
  • Nginx基础篇(2)- Nginx基本配置文件和变量详解

    摘要:基本配置文件和变量详解基本配置文件运行的用户进程数,建议设置为等于总核心数。允许客户端请求的最大单文件字节数。如果主体超过缓冲区大小,则完整主体或其一部分将写入临时文件。该指令在配置的,和区块使用。 Nginx基本配置文件和变量详解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx运行的用户 user nginx; # nginx进程数,建议设置为等于C...

    hss01248 评论0 收藏0

发表评论

0条评论

seanlook

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<