PHP,curl和原始标头

Ala*_*orm 36 php curl

使用PHP curl函数时,无论如何都要查看curl 发送到服务器的确切原始标头?

Gre*_*reg 40

你可以使用curl_getinfo:

在通话之前

curl_setopt($ch, CURLINFO_HEADER_OUT, true);
Run Code Online (Sandbox Code Playgroud)

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


ang*_*ent 8

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_exec($ch);
var_dump(curl_getinfo($ch,CURLINFO_HEADER_OUT));
?>
Run Code Online (Sandbox Code Playgroud)

仅适用于php 5.1.3 http://php.net/manual/en/function.curl-getinfo.php


您可以使用控制台并点击来验证它们是否相同

卷曲http://example.com/ -I

要么

curl --trace-ascii /file.txt http://example.com/


Dan*_*erg 5

AFAIK,PHP / CURL绑定仍然缺少对CURLOPT_DEBUGFUNCTION的适当支持,这是libcurl的回调,可以提供所有这些详细信息。

这就是为什么我建议人们使用curl命令行工具及其--trace-ascii选项FIRST将HTTP脚本编写出来,然后将其转换为PHP函数的主要原因。