我想研究如何发送和接收标头。
我知道PHP的header
函数,并认为我只能查看实际的请求标头(例如使用Firebug)并向服务器发出相同的请求(包括欺骗用户代理)。这是对的吗?
另一个问题是我如何获得标题响应?我想分析一下回应。
感谢。
修改
@Tatu,这是我运行的代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.google.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/8.1.0.0 Safari/540.0');
$result = curl_exec($ch);
curl_close($ch);
header('Content-type: text/plain');
echo($result);
答案 0 :(得分:3)
您可能需要查看cURL,它允许您发出请求并设置和检查标头。 PHP header
仅设置当前页面的标题,您不能使用它来欺骗您的用户代理 - 这些是服务器设置的标题,因此没有这样的意义。
带有自定义标头的cURL请求的基本结构可能是这样的:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Your user agent");
$result = curl_exec($ch);
curl_close($ch);
$result
的开头现在将包含从服务器收到的标头。
答案 1 :(得分:1)
如果你想自己发送标题而不使用cURL,请查看PHP中的套接字。