我应该如何阅读任何头在PHP?
例如自定义报头:X-Requested-With。
我应该如何阅读任何头在PHP?
例如自定义报头:X-Requested-With。
当前回答
function getCustomHeaders()
{
$headers = array();
foreach($_SERVER as $key => $value)
{
if(preg_match("/^HTTP_X_/", $key))
$headers[$key] = $value;
}
return $headers;
}
我使用这个函数来获得自定义头,如果头从“HTTP_X_”开始,我们在数组中推送:)
其他回答
$_SERVER['HTTP_X_REQUESTED_WITH']
RFC3875 4.1.18:
名称以HTTP_开头的元变量包含从客户端请求报头字段读取的值,如果使用的协议是HTTP。HTTP报头字段名被转换为大写,所有出现的-都替换为_,并在前面加上HTTP_来给出元变量名。
如果您有一台Apache服务器,这是可行的
PHP代码:
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
结果:
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive
从PHP 5.4.0开始,你可以使用getallheaders函数返回所有请求头作为关联数组:
var_dump(getallheaders());
// array(8) {
// ["Accept"]=>
// string(63) "text/html[...]"
// ["Accept-Charset"]=>
// string(31) "ISSO-8859-1[...]"
// ["Accept-Encoding"]=>
// string(17) "gzip,deflate,sdch"
// ["Accept-Language"]=>
// string(14) "en-US,en;q=0.8"
// ["Cache-Control"]=>
// string(9) "max-age=0"
// ["Connection"]=>
// string(10) "keep-alive"
// ["Host"]=>
// string(9) "localhost"
// ["User-Agent"]=>
// string(108) "Mozilla/5.0 (Windows NT 6.1; WOW64) [...]"
// }
在此之前,此函数仅在PHP作为Apache/NSAPI模块运行时有效。
function getCustomHeaders()
{
$headers = array();
foreach($_SERVER as $key => $value)
{
if(preg_match("/^HTTP_X_/", $key))
$headers[$key] = $value;
}
return $headers;
}
我使用这个函数来获得自定义头,如果头从“HTTP_X_”开始,我们在数组中推送:)
这个PHP小片段可能对您有帮助:
<?php
foreach($_SERVER as $key => $value){
echo '$_SERVER["'.$key.'"] = '.$value."<br />";
}
?>