📜  php $_SERVER - PHP (1)

📅  最后修改于: 2023-12-03 15:33:27.765000             🧑  作者: Mango

PHP $_SERVER

在 PHP 中,$_SERVER 是一个全局变量,用于存储有关当前脚本运行的服务器和请求信息。它是一个关联数组,包含了执行脚本的环境变量、服务器信息以及 HTTP 请求头等信息。

$_SERVER 数组的组成

$_SERVER 数组是一个关联数组,其中每个元素都是一个键值对,可以用 print_r($_SERVER); 来输出它的全部内容。以下是该数组的一些重要元素:

  • $_SERVER['PHP_SELF'] :当前执行脚本的文件名,例如 /index.php。
  • $_SERVER['SERVER_NAME'] :当前运行脚本所在的服务器的主机名,例如 www.example.com。
  • $_SERVER['REQUEST_METHOD'] :使用当前请求的请求方法,例如 POST 或 GET。
  • $_SERVER['REMOTE_ADDR'] :浏览当前页面的用户的 IP 地址。
  • $_SERVER['HTTP_REFERER'] :当前页面的前一个页面的 URL 地址。
  • $_SERVER['HTTP_USER_AGENT'] :浏览当前页面的用户代理信息。
  • $_SERVER['SCRIPT_FILENAME'] :当前脚本的绝对路径。
  • $_SERVER['SERVER_PORT'] :服务器当前运行的端口号。
  • $_SERVER['QUERY_STRING'] :查询字符串(query string),也就是 URL 中传递给脚本的数据。
用途

$_SERVER 变量在开发和调试 PHP 应用程序时非常有用。可以利用它的信息来改进日志记录、用户跟踪、URL 重定向、用户浏览器检测等功能。

以下是一些可能的用途:

  • 记录用户的浏览器和操作系统信息,以便更好地调整网站布局和样式。
  • 获取浏览器发送的 cookie,从而进行适当的用户跟踪。
  • 根据用户 IP 地址,可以对一些恶意行为进行拦截,例如禁止某些 IP 地址访问某些页面、防止暴力破解等。
  • 获取用户提交的数据,可以进行一些自定义的操作,例如数据过滤、验证、查询等。
示例代码

以下是一个简单的示例,用于输出当前请求的一些信息:

<?php
echo "当前执行的脚本名:" . $_SERVER['PHP_SELF'] . "\n";
echo "当前运行脚本所在的服务器的主机名:" . $_SERVER['SERVER_NAME'] . "\n";
echo "使用当前请求的请求方法:" . $_SERVER['REQUEST_METHOD'] . "\n";
echo "浏览当前页面的用户的 IP 地址:" . $_SERVER['REMOTE_ADDR'] . "\n";
echo "当前页面的前一个页面的 URL 地址:" . $_SERVER['HTTP_REFERER'] . "\n";
echo "浏览当前页面的用户代理信息:" . $_SERVER['HTTP_USER_AGENT'] . "\n";
echo "当前脚本的绝对路径:" . $_SERVER['SCRIPT_FILENAME'] . "\n";
echo "服务器当前运行的端口号:" . $_SERVER['SERVER_PORT'] . "\n";
echo "查询字符串:" . $_SERVER['QUERY_STRING'] . "\n";
?>

输出:

当前执行的脚本名:/index.php
当前运行脚本所在的服务器的主机名:www.example.com
使用当前请求的请求方法:GET
浏览当前页面的用户的 IP 地址:127.0.0.1
当前页面的前一个页面的 URL 地址:http://www.example.com/
浏览当前页面的用户代理信息:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0
当前脚本的绝对路径:/home/user/public_html/index.php
服务器当前运行的端口号:80
查询字符串: