一、什么是$_SERVER
在PHP中,$_SERVER是一个全局数组变量,其中保存了服务器提供的环境变量和信息。其中包含的信息比较详细,包括HTTP请求头、IP地址、端口等。
二、常用的$_SERVER变量
1. $_SERVER['HTTP_HOST']
$_SERVER['HTTP_HOST']保存了当前请求的主机头(Host Header),这个变量常常被用来判断当前请求的来源。比如:
if ($_SERVER['HTTP_HOST'] == 'www.example.com') { // 进行相应的操作 }
2. $_SERVER['HTTP_REFERER']
$_SERVER['HTTP_REFERER']保存了当前请求的来源页面地址(referer)。它通常被用来判断请求是否来自于自己的网站或者外部站点,从而做出相应的响应。比如:
if (strpos($_SERVER['HTTP_REFERER'], 'example.com') !== false) { // 来源于example.com,进行相应的操作 }
3. $_SERVER['REQUEST_METHOD']
$_SERVER['REQUEST_METHOD']保存了当前请求的HTTP方法,通常用来判断当前请求的类型。比如:
if ($_SERVER['REQUEST_METHOD'] == 'POST') { // 处理POST请求 }
4. $_SERVER['QUERY_STRING']
$_SERVER['QUERY_STRING']保存了当前请求的查询参数。比如:
// https://example.com/search.php?q=php echo $_SERVER['QUERY_STRING']; // 输出 "q=php"
三、其他常用的$_SERVER变量
1. $_SERVER['REMOTE_ADDR']
$_SERVER['REMOTE_ADDR']保存了客户端的IP地址,常用来记录访问者的IP。比如:
// 记录访问者的IP $log = "IP: " . $_SERVER['REMOTE_ADDR'] . " 访问了页面\n"; file_put_contents('access.log', $log, FILE_APPEND);
2. $_SERVER['HTTP_USER_AGENT']
$_SERVER['HTTP_USER_AGENT']保存了发起当前HTTP请求的客户端的User-Agent字符串。通过这个变量,我们可以获得浏览器、操作系统以及是否为蜘蛛爬虫等信息。比如:
$user_agent = $_SERVER['HTTP_USER_AGENT']; if (strpos($user_agent, 'Firefox') !== false) { echo '您正在使用Firefox浏览器'; }
3. $_SERVER['SERVER_NAME']
$_SERVER['SERVER_NAME']保存了当前Web服务器的主机名或者IP地址,通常用来构造当前Web服务器中某个资源的URL。比如:
// 显示网站logo的地址 echo 'https://' . $_SERVER['SERVER_NAME'] . '/images/logo.png';
四、总结
在本文中,我们详细介绍了PHP $_SERVER变量,包括常用的HTTP请求变量和其他常用的变量。了解这些变量将帮助我们更好地理解当前请求所处的环境,以及提供更好的用户体验。