我反正知道,我跳了无数的坑,特大!不过还好解决了;和http协议联系深重,看来web开发光看一遍http协议是不够的,要非常熟悉,就跟吃饭说话一样熟悉才行啊!废话不多说,直接看代码。
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url); // 设置访问链接curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // 是否返回信息curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); // 超时时间curl_setopt($ch, CURLOPT_POST, FALSE);curl_setopt($ch, CURLOPT_HEADERFUNCTION, function ($resURL, $strHeader) { if (preg_match('/^Content-Disposition/i', $strHeader)) { header($strHeader); } if (preg_match('/^Content-Type/i', $strHeader)) { header($strHeader); } return strlen($strHeader);});$html = curl_exec($ch);curl_close($ch);echo $html;exit();
这里主要要点是 CURLOPT_HEADERFUNCTION
参数,这个参数是从新定义http响应头,这是我的理解;--- Http协议相关知识点;
第二点最后exit()退出函数,为什么要加,这个知识点还是有些模糊,我要在研究一下php解析过程和源代码了;
总结:http协议不熟悉,php解析过程不熟悉;知道是好事情,做到才是真的好。
参考文献: