我想知道是否有办法在Apache上运行的PHP中获取原始HTTP请求数据,而不涉及使用任何附加扩展。我已经在手册中看到了HTTP函数,但我没有在我的环境中安装扩展的选项。如何使用PHP/apache访问原始HTTP请求数据?
尽管我可以从$ _SERVER访问信息,但我希望看到原始请求与发送到服务器的原始请求完全相同。 PHP使用标题名称来适应自己的数组键风格,例如。 Some-Test-Header变为HTTP_X_SOME_TEST_HEADER。这不是我需要的。
我想知道是否有办法在Apache上运行的PHP中获取原始HTTP请求数据,而不涉及使用任何附加扩展。我已经在手册中看到了HTTP函数,但我没有在我的环境中安装扩展的选项。如何使用PHP/apache访问原始HTTP请求数据?
尽管我可以从$ _SERVER访问信息,但我希望看到原始请求与发送到服务器的原始请求完全相同。 PHP使用标题名称来适应自己的数组键风格,例如。 Some-Test-Header变为HTTP_X_SOME_TEST_HEADER。这不是我需要的。
您的意思是包含在$_SERVER
的信息?
print_r($_SERVER);
编辑:
请问这怎么办呢?
foreach(getallheaders() as $key=>$value) {
print $key.': '.$value."<br />";
}
使用下面的PHP包装:
$raw_post = file_get_contents("php://input");
试试这个:
$request = $_SERVER['SERVER_PROTOCOL'] .' '. $_SERVER['REQUEST_METHOD'] .' '. $_SERVER['REQUEST_URI'] . PHP_EOL;
foreach (getallheaders() as $key => $value) {
$request .= trim($key) .': '. trim($value) . PHP_EOL;
}
$request .= PHP_EOL . file_get_contents('php://input');
echo $request;
是的,但我想的原始请求之前得到由PHP – Shabbyrobe 2008-10-03 03:56:54
注解析为$ _ SERVER:getallheaders ()与fastcgi一起工作,因为PHP 5.4 – NickSoft 2013-03-13 14:31:28