欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用php判斷網(wǎng)頁(yè)是否gzip壓縮

 更新時(shí)間:2013年06月25日 16:24:02   作者:  
本篇文章是對(duì)使用php判斷網(wǎng)頁(yè)是否gzip壓縮進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
昨天晚上群里有朋友采集網(wǎng)頁(yè)時(shí)發(fā)現(xiàn)file_get_contents 獲得的網(wǎng)頁(yè)保存到本地為亂碼,響應(yīng)的header 里 Content-Encoding:gzip
但在瀏覽器里看是正常的。
因?yàn)槲矣羞^(guò)相關(guān)經(jīng)驗(yàn)馬上發(fā)現(xiàn)是網(wǎng)站開啟了gzip而file_get_contents 獲得的是壓縮過(guò)的頁(yè)面,而不是解壓過(guò)的頁(yè)面(不知道是不是要file_get_conttents 請(qǐng)求網(wǎng)頁(yè)時(shí)帶上相應(yīng)的參數(shù),直接獲得沒有被gzip壓縮過(guò)的網(wǎng)頁(yè)?)
剛好我前不久剛看到可以用讀取文件的前2個(gè)字節(jié)判斷文件類型。群里面的朋友也說(shuō)gzip壓縮過(guò)的網(wǎng)頁(yè)(gbk編碼)前2字節(jié)是 1F 8B 于是就可以判斷網(wǎng)頁(yè)是否gzip壓縮過(guò)。
代碼如下:
復(fù)制代碼 代碼如下:

//米爾軍事網(wǎng)采用 gzip壓縮網(wǎng)頁(yè)
//file_get_contents 直接獲得的網(wǎng)頁(yè)是亂碼。
header('Content-Type:text/html;charset=utf-8' );
$url = 'http://www.miercn.com';
$file = fopen($url, "rb");  
//只讀2字節(jié)  如果為(16進(jìn)制)1f 8b (10進(jìn)制)31 139則開啟了gzip ;
$bin = fread($file, 2); 
fclose($file);  
$strInfo = @unpack("C2chars", $bin);  
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);  
$isGzip = 0;  
switch ($typeCode)  
{
    case 31139:      
      //網(wǎng)站開啟了gzip
        $isGzip = 1;
        break;
    default:  
        $isGzip = 0;
}  
$url = $isGzip ? "compress.zlib://".$url:$url; // 三元表達(dá)式
$mierHtml = file_get_contents($url); //獲得米爾軍事網(wǎng)數(shù)據(jù)
$mierHtml = iconv("gbk","utf-8",$mierHtml);
echo $mierHtml;

相關(guān)文章

最新評(píng)論