PHP curl能否在单个请求中检索响应头和响应正文?是否有任何方法可以同时获取使用PHP的cURL请求的头和正文?我发现这个选择:curl_setopt($ch, CURLOPT_HEADER, true);将返回主体加头但我需要解析它才能得到身体。有什么方法可以让两者都更有用(更安全)吗?注意,对于“单一请求”,我的意思是避免在GET/POST之前发出头请求。
3 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
劈开 \r\n\r\n不可靠 CURLOPT_FOLLOWLOCATION正在打开或何时服务器使用100代码进行响应。 并不是所有的服务器都符合标准,只传输一个 \n换新的台词。 通过 CURLINFO_HEADER_SIZE也不总是可靠的,特别是在使用代理或在某些相同的重定向场景中使用代理时。
CURLOPT_HEADERFUNCTION.
此版本将保留重复的标头。
mb_
$ch = curl_init();$headers = [];curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// this function is called by curl for each header receivedcurl_setopt($ch, CURLOPT_HEADERFUNCTION,
function($curl, $header) use (&$headers)
{
$len = strlen($header);
$header = explode(':', $header, 2);
if (count($header) < 2) // ignore invalid headers
return $len;
$name = strtolower(trim($header[0]));
if (!array_key_exists($name, $headers))
$headers[$name] = [trim($header[1])];
else
$headers[$name][] = trim($header[1]);
return $len;
});$data = curl_exec($ch);print_r($headers);- 3 回答
- 0 关注
- 991 浏览
添加回答
举报
0/150
提交
取消
