程序: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]);
}
}
dazhaimen
2月前
引用
2楼
隔壁老卢
2月前
引用
3楼
lecms
2月前
引用
4楼
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)