PHP 全局变量数组:服务器变量 $_SERVER Draft
超级全局变量中的服务器变量 $_SERVER
是我们会在 web 应用开发中比较常用到的。它是一个由 Web 服务器创建的数组,包含了头部信息(header)、路径(path)、脚本位置(script location)等信息。不同的 Web 服务器, $_SERVER
所包含的信息会有所不同。
可通过 var_dump()
查看其内容:
<?php
var_dump($_SERVER);
常用信息获取
获取客户端代理字符串
<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
我们会获得类似如下的字符串:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36
可通过对客户端代理字符串的解析,获得客户端所用操作系统、浏览器等信息。
获取客户端语言信息
<?php
$language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
对于支持多语言的站点,我们可通过 HTTP_ACCEPT_LANGUAGE
来获取客户端(浏览器)所用语言,自动返回给客户端相应语言版本的内容。
获取引用(来源)页面
<?php
$language = $_SERVER['HTTP_REFERER']
通过获取引用(来源)页面,我们可统计用户的访问路径,可以防盗链。
获取客户端 IP
<?php
$ip = $_SERVER['REMOTE_ADDR'];
这是最简单的获取客户端 IP 的方式,但实际情况要复杂的多,如果用户使用代理服务器访问站点,我们需要综合运用 REMOTE_ADDR
、HTTP_X_FORWARDED_FOR
、HTTP_CLIENT_IP
来判断和获取 IP。
获取客户端请求方式
<?php
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
case 'GET':
break;
case 'POST':
break;
}