PHP 简明教程

PHP $_SERVER

1. PHP $_SERVER

$_SERVER 超全局变量保存了关于 Web 服务器的信息,包括 HTTP 头信息(headers)、路径(paths)以及脚本位置(script locations)。

PHP 超全局变量是内置的变量,它们始终可以在所有的作用域中被直接访问

注意: $_SERVER 中的条目是由 Web 服务器创建的,因此不能保证每个条目在所有不同的服务器或环境中都一定可用。

下面的示例展示了如何使用 $_SERVER 数组中的一些常见元素:

示例

echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];

2. $_SERVER 常用元素对照表

下表列出了可以通过 $_SERVER 获取的最重要的一些元素及其描述:

元素 / 代码描述
$_SERVER['PHP_SELF']返回当前正在执行脚本的文件名(相对于文档根目录)
$_SERVER['GATEWAY_INTERFACE']返回服务器使用的通用网关接口(CGI)的版本
$_SERVER['SERVER_ADDR']返回当前运行脚本所在的服务器的 IP 地址
$_SERVER['SERVER_NAME']返回主机服务器的名称(例如:www.begindev.com)
$_SERVER['SERVER_SOFTWARE']返回服务器标识的字符串,在响应请求时的头信息中给出(例如:Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL']返回请求页面时通信协议的名称和版本(例如:HTTP/1.1)
$_SERVER['REQUEST_METHOD']返回访问页面使用的请求方法(例如:GET 或 POST)
$_SERVER['REQUEST_TIME']返回请求开始时的时间戳(例如:1377687496)
$_SERVER['QUERY_STRING']如果页面是通过查询字符串访问的,则返回该查询字符串
$_SERVER['HTTP_ACCEPT']返回当前请求的 Accept 头信息的内容
$_SERVER['HTTP_ACCEPT_CHARSET']返回当前请求的 Accept-Charset 头信息的内容(例如:utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST']返回当前请求的 Host 头信息的内容
$_SERVER['HTTP_REFERER']返回引导用户代理到当前页的前一页的完整 URL(注意:不可靠,因为并非所有的用户代理都支持或发送此信息)
$_SERVER['HTTPS']如果脚本是通过安全的 HTTP 协议(HTTPS)查询的,则返回一个非空值
$_SERVER['REMOTE_ADDR']返回正在浏览当前页面的用户的 IP 地址
$_SERVER['REMOTE_HOST']返回正在浏览当前页面的用户的主机名
$_SERVER['REMOTE_PORT']返回用户机器上连接到 Web 服务器所使用的端口号
$_SERVER['SCRIPT_FILENAME']返回当前执行脚本的绝对路径名
$_SERVER['SERVER_ADMIN']返回在 Web 服务器配置文件中 SERVER_ADMIN
 指令的值(如果脚本运行在虚拟主机上,该值将是那个虚拟主机定义的值,例如:someone@begindev.com)
$_SERVER['SERVER_PORT']返回 Web 服务器用于通信的端口(默认为 80)
$_SERVER['SERVER_SIGNATURE']返回服务器版本和虚拟主机名的字符串,该字符串会被添加到服务器生成的页面底部
$_SERVER['PATH_TRANSLATED']返回当前脚本所在文件系统(非文档根目录)的基本路径
$_SERVER['SCRIPT_NAME']返回包含当前脚本的路径
$_SERVER['SCRIPT_URI']返回当前页面的 URI