我想知道是否有办法获取在apache上运行的PHP中的原始HTTP请求数据,该数据不涉及使用任何其他扩展。我在手册中看到了HTTP函数,但我无法在我的环境中安装扩展。
虽然我可以从$ _SERVER访问信息,但我希望看到原始请求与发送到服务器的完全相同。 PHP会根据自己的数组键样式来管理标题名称,例如。 Some-Test-Header变为HTTP_X_SOME_TEST_HEADER。这不是我需要的。
答案 0 :(得分:12)
使用以下php包装器:
$raw_post = file_get_contents("php://input");
答案 1 :(得分:10)
您的意思是$_SERVER
中包含的信息吗?
print_r($_SERVER);
编辑:
那会这样吗?
foreach(getallheaders() as $key=>$value) {
print $key.': '.$value."<br />";
}
答案 2 :(得分:2)
试试这个:
$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;