$_SERVER 是 PHP 中一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的超全局变量数组,实际开发中经常会用到,特别是以下几个项目,牢记它们不仅有助于提高开发效率,而且它们也是 PHP 面试时的常见考点。结合文末的实例可加深理解。
1. $_SERVER[‘SERVER_NAME’]
获取当前运行脚本所在的服务器配置文件中的第一个主机名。如需获取用户当前访问的域名,需使用 $_SERVER[‘HTTP_HOST’] 。
2. $_SERVER[‘SERVER_ADDR’]
获取当前运行脚本所在的服务器的 IP 地址。
3. $_SERVER[‘REMOTE_ADDR’]
获取浏览当前页面的用户的 IP 地址。
4. $_SERVER[‘HTTP_USER_AGENT’]
获取当前请求头中 User-Agent: 项的内容,该字符串表明了访问该页面的用户代理的信息。通过使用正则表达式对获取值进行匹配解析可以得到用户使用的浏览器、操作系统等信息。
5. $_SERVER[‘REQUEST_TIME’]
获取请求开始时的时间戳,即访问时间。
6. $_SERVER[‘HTTP_REFERER’]
获取引导用户代理到当前页的前一页的地址。该值由 user agent 设置决定,并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能,因而该值并不总是可信的。
7. $_SERVER[‘REQUEST_URI’]
获取要访问的页面地址,即所访问网址在域名之后的部分。
8. $_SERVER[‘PATH_INFO’]
获取所访问的页面地址中跟在真实脚本名称之后,在查询语句(query string)之前的路径信息。
9. $_SERVER[‘QUERY_STRING’]
获取所访问的页面地址中的查询字符串,即 ? 之后的内容。
示例:
在本站 /test/php/ 文件夹下新建 server-test.html 与 server-test.php 两个文件,通过 server-test.html 中的
<a href="server-test.php/use/reg/?status=ghost">Server Test URL</a>
访问 server-test.php/use/reg/?status=ghost 。
server-test.php
<?php
echo 'Server name : '.$_SERVER['SERVER_NAME'].'<br/>';
echo 'Server addr : '.$_SERVER['SERVER_ADDR'].'<br/>';
echo 'Remote addr : '.$_SERVER['REMOTE_ADDR'].'<br/>';
echo 'Http user agent : '.$_SERVER['HTTP_USER_AGENT'].'<br/>';
echo 'Request time : '.date('Y-m-d H:i',$_SERVER['REQUEST_TIME']).'<br/>';
echo 'Http referer : '.$_SERVER['HTTP_REFERER'].'<br/>';
echo 'Request uri : '.$_SERVER['REQUEST_URI'].'<br/>';
echo 'Path info : '.$_SERVER['PATH_INFO'].'<br/>';
echo 'Query string : '.$_SERVER['QUERY_STRING'].'<br/>';
/* 输出
Server name : www.kurui.me
Server addr : 172.19.21.232
Remote addr : 27.154.74.87
Http user agent : Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Request time : 2018-12-19 22:10
Http referer : http://www.kurui.me/test/php/server-test.html
Request uri : /test/php/server-test.php/use/reg/?status=ghost
Path info : /use/reg/
Query string : status=ghost
*/
?>
● 关于 PHP 超全局变量数组 $_SERVER 的更多项目可查阅:PHP:$_SERVER – PHP手册
● 更多关于 PHP 超全局变量的资料可查阅:PHP:超全局变量 – PHP手册