ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して Web ページが gzip 圧縮されているかどうかを判断する_PHP チュートリアル

PHP を使用して Web ページが gzip 圧縮されているかどうかを判断する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:03:26793ブラウズ

昨夜、グループの友人が Web ページを収集したところ、file_get_contents で取得した Web ページをローカルに保存すると、応答ヘッダーに Content-Encoding: gzip
が含まれていましたが、ブラウザで表示すると正常でした。
関連した経験があるため、Web サイトが gzip をオンにし、file_get_contents が解凍されたページではなく圧縮されたページを取得したことがすぐにわかりました (Web ページをリクエストして取得するときに、file_get_contents が対応するパラメーターを持ってくる必要があるかどうかはわかりません) gzip で圧縮されていない Web ページ?)
ファイルの最初の 2 バイトを読み取ることでファイルの種類を判断できることをつい最近知りました。グループの友人らは、gzip 圧縮された Web ページ (gbk エンコード) の最初の 2 バイトは 1F 8B であるため、Web ページが gzip 圧縮されているかどうかを判断できるとも言いました。
コードは次のとおりです:

コードをコピーします コードは次のとおりです:

//Mire Military Network uses gzip to compress the Web page
//file_get_contents 直接取得した Web ページは文字化けします。
header('Content-Type:text/html;charset=utf-8' );
$url = 'http://www.miercn.com'
$file = fopen($url, "rb");
//読み取りのみ 2 バイト (16 進数) 1f 8b (10 進数) 31 139 の場合、gzip が有効になります
$bin = fread($file, 2)
$ strInfo = @unpack ("C2chars", $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
switch ($typeCode)
ケース 31139:
//Web サイトでは gzip が有効になっています
$isGzip = 1;
デフォルト:
$isGzip = 0;
}
$url = $url; //三項式
$mierHtml = file_get_contents($url); //Mier軍事ネットワークデータを取得
$mierHtml = iconv("gbk","utf-8",$mierHtml);



http://www.bkjia.com/PHPjc/327839.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/327839.html

昨夜、グループの友人が Web ページを収集したとき、file_get_contents で取得した Web ページをローカルに保存すると、応答ヘッダーに Content-Encoding: gzip が含まれていましたが、ブラウザで表示すると正常であったことがわかりました。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。