PHP的file_get_contents獲取遠程頁面內容,如果是gzip編碼過的,返回的字符串就是編碼後的亂碼
1、解決方法,找個ungzip的函數來轉換下
2、給你的url加個前綴,這樣調用
$content = file_get_contents("compress.zlib://".$url);
無論頁面是否經過gzip壓縮,上述代碼都可以正常工作!
使用curl模塊同樣可解決問題
function curl_get($url, $gzip=false){
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
if($gzip) curl_setopt($curl, CURLOPT_ENCODING, "gzip"); // 關鍵在這裡
$content = curl_exec($curl);
curl_close($curl);
return $content;
}