我反正知道,我跳了無數的坑,特大!不過還好解決了;和http協議聯繫深重,看來web開發光看一遍http協議是不夠的,要很是熟悉,就跟吃飯說話同樣熟悉才行啊!廢話很少說,直接看代碼。php
$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協議相關知識點;html
第二點最後exit()退出函數,爲何要加,這個知識點仍是有些模糊,我要在研究一下php解析過程和源代碼了;web
總結:http協議不熟悉,php解析過程不熟悉;知道是好事情,作到纔是真的好。curl
參考文獻: Client URL 庫函數