首页 > 编程 > PHP > 正文

PHP的$_SERVER的详细介绍(代码示例)

2020-03-22 16:59:33
字体:
来源:转载
供稿:网友
本篇文章给大家带来的内容是关于PHP的$_SERVER的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助

$_SERVER 是PHP预定义的超html' target='_blank'>全局变量。所谓“超全局变量”,即在脚本全部作用域中都可以使用,$_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// $_SERVER[ HTTPS ]当前是否为HTTPS协议if (!empty($_SERVER[ HTTPS ]) strtolower($_SERVER[ HTTPS ]) !== off ) { $url = http:// } else { $url = http:// if ($_SERVER[ SERVER_PORT ] == 80) { $url .= $_SERVER[ HTTP_HOST ].$_SERVER[ REQUEST_URI } else { $url .= $_SERVER[ HTTP_HOST ].$_SERVER[ REQUEST_URI ].$_SERVER[ SERVER_PORT }
 ?php// $_SERVER[ HTTP_REFERER ],前一页面的urlif (!empty($_SERVER[ HTTP_REFERER ])) { if (!strpos($_SERVER[ HTTP_REFERER ], www.example.com )) { header( Location: http://www.example.com }

以上就是PHP的$_SERVER的详细介绍(代码示例)的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表