php讀取遠(yuǎn)程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壓縮。這里的解決方案有多種,當(dāng)然如果你使用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"); // 關(guān)鍵在這里
$content = curl_exec($curl);
curl_close($curl);
return $content;
}
同時,參考手冊上面的解法,還可以對保存gzip類型的字符串進(jìn)行處理如下:
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)頁代碼(清除空格,換行符,制表符,注釋標(biāo)記)
- 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)頁壓縮功能的方法
相關(guān)文章
PHP實現(xiàn)的基于單向鏈表解決約瑟夫環(huán)問題示例
這篇文章主要介紹了PHP實現(xiàn)的基于單向鏈表解決約瑟夫環(huán)問題,結(jié)合具體實例形式分析了php使用單鏈表解決約瑟夫環(huán)問題的算法原理與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09分享下php5類中三種數(shù)據(jù)類型的區(qū)別
這篇文章主要介紹了php5類中三種數(shù)據(jù)類型的區(qū)別,需要的朋友可以參考下2015-01-01