php curl 无法采集 报错CURLOPT_FOLLOWLOCATION cannot be activated解决curl_redir_exec Undefined offset: 1问题

网上的 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函数区分响应头和响应数据

这样就解决了

你可能感兴趣的:(php curl 无法采集 报错CURLOPT_FOLLOWLOCATION cannot be activated解决curl_redir_exec Undefined offset: 1问题)