📅  最后修改于: 2023-12-03 15:00:54.332000             🧑  作者: Mango
在 HTTP 请求中,请求头部信息包含了多种重要的参数,用于告知请求接收方(通常是服务器)有关发送方(通常是客户端)的一些信息。
使用 PHP,我们可以通过 getallheaders()
函数来获取请求的头部信息。下面介绍一些使用 getallheaders()
的注意点:
getallheaders()
只能在 Apache 服务器上使用。如果你使用的是 nginx 或其他服务器,该函数将会返回 null
。
getallheaders()
返回一个关联数组,其中包含了头部信息中的所有参数,以键值对的形式存储。例如:
Array
(
[Host] => example.com
[User-Agent] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36
[Accept] => */*
[Accept-Encoding] => gzip, deflate, br
[Connection] => keep-alive
[Referer] => https://example.com/
[Upgrade-Insecure-Requests] => 1
[Sec-Fetch-Dest] => document
[Sec-Fetch-Mode] => navigate
[Sec-Fetch-Site] => cross-site
[Sec-Fetch-User] => ?1
[Pragma] => no-cache
[Cache-Control] => no-cache
)
由于 HTTP 请求头部信息中的键值对顺序是不固定的,因此 getallheaders()
函数返回的数组顺序也是不确定的。
对于重复的头部信息参数,getallheaders()
返回的数组中将只包含最后一个。例如:如果有两个 Content-Type
参数,函数将只返回最后一个。
getallheaders()
返回的数组中,键名(也就是头部信息参数名)为大写格式。
使用示例:
$headers = getallheaders();
// 输出获取到的头部信息
foreach ($headers as $key => $value) {
echo "$key: $value<br>";
}
注意:如果你使用的是 PHP 内置服务器,例如在本地开发时使用 php -S
命令启动本地服务器,getallheaders()
也会返回 null
。如果需要使用该函数,建议使用 Apache 服务器或其他库或框架来处理 HTTP 请求。