我在使用PHP解析http标头时遇到问题。
当我运行此代码时:
$headers = getallheaders();
所有标头都加载到$headers
数组中。但是,如果任何数组键名称具有" - "在其中,相应的结果为null。例如:
echo $headers[User-Agent];
将返回null,而:
echo $headers[Host];
将正常返回值。
这是一个错误还是我遗失了什么?
答案 0 :(得分:1)
尝试使用doube / single引号,如下面的代码:
<?php
$headers = getallheaders();
echo $headers["User-Agent"];
echo $headers["Host"];
?>
输出:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36main.xfiddle.com
中试用此代码
答案 1 :(得分:1)
尝试转储$headers
并查看其中的内容。
var_dump($headers);
查找可用密钥,然后使用它们。
var_dump($headers['User-Agent']);
请注意,密钥区分大小写。