xiunophp/msic.func.php文件中https_post函数
list($header, $data) = explode("\r\n\r\n", $data);
这样子分隔响应头和响应主体 会有bug。
场景:
在通过这个函数下载云存储上的txt文件的时候,下载后,文件内容只有一个段落。
原因:
通过"\r\n\r\n"分割响应头和主体的时候,$data只有一个段落~~~ 导致下载的txt文件内容丢失~
正确做法
$data = curl_exec($ch); //如果CURLOPT_HEADER = 1,这里会有响应头信息
$header_size = curl_getinfo($ch,CURLINFO_HEADER_SIZE);
$header = substr($data,0, $header_size);
$data = substr($data, $header_size); //去掉响应头 截取响应主体
如何把响应头转为数组?
$header_arr = explode("\n", $header);
// 将响应头转换为数组
$headers = array();
foreach ($header_arr as $i => $line) {
// [0] => HTTP/1.1 200 不要
if($i){
$arr = explode(':', $line);
isset($arr[1]) && $headers[strtolower($arr[0])] = trim($arr[1]);
}
}
特别声明:本站所有资源均为学习测试使用,请在下载后48小时之内自主删除,本站以学习为目的不承担任何法律责任!
评论(0)