如何使用PHP脚本记录原始HTTP标头?

php*_*php 5 php header http

我正在使用cURL脚本通过代理将POST数据发送到脚本,我想查看cURL脚本发送的原始HTTP头.我尝试过的事情清单:

  • echo curl_getinfo($ch, CURLINFO_HEADER_OUT) 没有输出.
  • file_get_contents('php://input') 获取一些HTTP标头但不是全部.
  • print_r($_SERVER) 也获得了一些HTTP头但不是全部(我知道这是因为应该有一个X-Forwarded-For标头但没有)
  • 打印所有超级全局($ _POST,$ _GET,$ _REQUEST,$ _FILES等)仍然不显示原始HTTP标头.
  • http_get_request_headers(),apache_request_headers(),$http_response_header,$HTTP_RAW_POST_DATA不输出一切.

救命?

Tom*_*igh 1

您还需要设置CURLINFO_HEADER_OUT选项:

CURLINFO_HEADER_OUT
TRUE 跟踪句柄的请求字符串。
自 PHP 5.1.3 起可用。CURLINFO_ 前缀是故意的。

http://www.php.net/manual/en/function.curl-setopt.php

以下作品:

<?php

$ch = curl_init('http://www.google.com');
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);

echo curl_getinfo($ch, CURLINFO_HEADER_OUT);
Run Code Online (Sandbox Code Playgroud)