php讀取遠程gzip壓縮網(wǎng)頁的方法
今天在調(diào)取一家商城的頁面信息時候,使用file_get_contents抑或curl:
$url = 'http://www.xxx.com/21/?type=23′;
$temp = file_get_contents($url);
echo $temp;
都得到一片亂碼,查看了許多內(nèi)容,包括頁面的header信息,發(fā)現(xiàn)原來頁面使用了。

類似的信息,即Content-Encoding為gzip,即該站點開啟了gzip壓縮。這里的解決方案有多種,當然如果你使用file_get_contents的話,可以這樣修改:
file_get_contents("compress.zlib://".$url);
或者使用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;
}
同時,參考手冊上面的解法,還可以對保存gzip類型的字符串進行處理如下:
function gzdecode($data){
$g=tempnam(‘/tmp','ff');
@file_put_contents($g,$data);
ob_start();
readgzfile($g);
$d=ob_get_clean();
return $d;
}
- php使用ob_start()實現(xiàn)圖片存入變量的方法
- PHP使用ob_start生成html頁面的方法
- php緩沖 output_buffering和ob_start使用介紹
- 用php的ob_start來生成靜態(tài)頁面的方法分析
- 用PHP ob_start()控制瀏覽器cache、生成html實現(xiàn)代碼
- 使用php判斷網(wǎng)頁是否gzip壓縮
- PHP壓縮html網(wǎng)頁代碼(清除空格,換行符,制表符,注釋標記)
- php中ob函數(shù)緩沖機制深入理解
- php中ob_get_length緩沖與獲取緩沖長度實例
- php ob_flush,flush在ie中緩沖無效的解決方法
- php中ob(Output Buffer 輸出緩沖)函數(shù)使用方法
- php基于ob_start(ob_gzhandler)實現(xiàn)網(wǎng)頁壓縮功能的方法
相關文章
Fatal error: Call to undefined function curl_init()解決方法
Fatal error: Call to undefined function curl_init()解決方法2010-04-04
PHP接收json 并將接收數(shù)據(jù)插入數(shù)據(jù)庫的實現(xiàn)代碼
這篇文章主要介紹了PHP接收json 并將接收數(shù)據(jù)插入數(shù)據(jù)庫的實現(xiàn)代碼,需要的朋友可以參考下2015-12-12
PHP結(jié)合JQueryJcrop實現(xiàn)圖片裁切實例詳解
這篇文章主要介紹了PHP結(jié)合JQueryJcrop實現(xiàn)圖片裁切實例,非常實用的一個功能,需要的朋友可以參考下2014-07-07
使用Smarty 獲取當前日期時間和格式化日期時間的方法詳解
本篇文章是對使用Smarty獲取當前日期時間和格式化日期時間的方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06

