国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

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

2024-05-04 23:11:18
字體:
供稿:網(wǎng)友
昨天晚上群里有朋友采集網(wǎng)頁時發(fā)現(xiàn)file_get_contents 獲得的網(wǎng)頁保存到本地為亂碼,響應(yīng)的header 里 Content-Encoding:gzip
但在瀏覽器里看是正常的。
因為我有過相關(guān)經(jīng)驗馬上發(fā)現(xiàn)是網(wǎng)站開啟了gzip而file_get_contents 獲得的是壓縮過的頁面,而不是解壓過的頁面(不知道是不是要file_get_conttents 請求網(wǎng)頁時帶上相應(yīng)的參數(shù),直接獲得沒有被gzip壓縮過的網(wǎng)頁?)
剛好我前不久剛看到可以用讀取文件的前2個字節(jié)判斷文件類型。群里面的朋友也說gzip壓縮過的網(wǎng)頁(gbk編碼)前2字節(jié)是 1F 8B 于是就可以判斷網(wǎng)頁是否gzip壓縮過。
代碼如下:

復(fù)制代碼 代碼如下:


//米爾軍事網(wǎng)采用 gzip壓縮網(wǎng)頁
//file_get_contents 直接獲得的網(wǎng)頁是亂碼。
header('Content-Type:text/html;charset=utf-8' );
$url = 'http://www.miercn.com';
$file = fopen($url, "rb");
//只讀2字節(jié) 如果為(16進制)1f 8b (10進制)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; // 三元表達式
$mierHtml = file_get_contents($url); //獲得米爾軍事網(wǎng)數(shù)據(jù)
$mierHtml = iconv("gbk","utf-8",$mierHtml);
echo $mierHtml;


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南召县| 深水埗区| 西充县| 塔河县| 河津市| 邹平县| 望城县| 比如县| 岳阳市| 岱山县| 铜陵市| 天津市| 明溪县| 克拉玛依市| 建平县| 南澳县| 柞水县| 义乌市| 大渡口区| 石林| 萝北县| 勐海县| 贵定县| 乐山市| 长治县| 南开区| 枣阳市| 石家庄市| 保山市| 三亚市| 胶州市| 延寿县| 黔江区| 左贡县| 彭阳县| 开鲁县| 砚山县| 论坛| 马关县| 固阳县| 游戏|