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小时之内自主删除,本站以学习为目的不承担任何法律责任!