xiunobbs程序 https_post 函数 bug

lecms 25天前 99

程序:xiunobbs

位置: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]);
	}
}
最新回复 (3)
  • dazhaimen 22天前
    引用 2
    怎么升级?没看太懂哦
  • 隔壁老卢 21天前
    引用 3
    msic.func.php不是挂载钩子么。。。这是适配的其他插件吗?还是?没看懂
  • lecms 20天前
    引用 4
    隔壁老卢 msic.func.php不是挂载钩子么。。。这是适配的其他插件吗?还是?没看懂
    xiunobbs程序,不是说lecms
返回
发新帖