PHP 全局变量数组:服务器变量 $_SERVER Draft 1 个改进

超级全局变量中的服务器变量 $_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_ADDRHTTP_X_FORWARDED_FORHTTP_CLIENT_IP 来判断和获取 IP。

获取客户端请求方式

<?php
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
    case 'GET':
        break;
    case 'POST':
        break;
}

参考

本 Wiki 尚未完善,邀您参与 如何撰写一篇高品质的 Wiki?
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!