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 關注
- 964 瀏覽
添加回答
舉報
0/150
提交
取消
