网上的 function curl_redir_exec 里的代码有问题:
list($header, $data) = explode("\n\n", $data, 2);
里面的这行代码意思是通过"\n\n"换行符来区分响应头和响应数据,然而,很多时候并不能够分割开响应头和响应信息,真是个bad idea
为了解决这个问题,应该换成更安全的方式,替换如下代码解决报错:
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($data, 0, $headerSize);
$data= substr($data,$headerSize);
通过内置的更安全的curl_getinfo函数区分响应头和响应数据
这样就解决了