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 关注
- 932 浏览
添加回答
举报
0/150
提交
取消