ホームページ > php教程 > php手册 > Gzip ファイルと文字列の解凍例のチュートリアル

Gzip ファイルと文字列の解凍例のチュートリアル

WBOY
リリース: 2016-06-21 08:57:31
オリジナル
1651 人が閲覧しました

Web サイトを収集するには、ターゲット ステーションは gzip 圧縮を使用して Web ページを送信します。本来は、http ヘッダー Accept-Encoding: ID を送信するだけで済みます。あるいは、このヘッダーを送信しないことで、ターゲット ステーションがgzip で圧縮されていないページは、残念ながら、ターゲット ステーションがクライアントの要求を無視し、依然として gzip データを返すため、文字化けが発生します。

実際には、PHP では gzip を解凍するのが非常に簡単で、組み込みの gzdecode 関数を使用するだけで済みます。しかし、残念ながら、長い間設定した後、gzdecode 関数をサポートできなかったため、作業する必要がありました。その周り:

以下为引用的内容:

if (!function_exists('gzdecode')) {
function gzdecode ($data) {
$flags = ord(substr($data, 3, 1));
$headerlen = 10;
$extralen = 0;
$filenamelen = 0;
if ($flags & 4) {
$extralen = unpack('v' ,substr($data, 10, 2));
$extralen = $extralen[1];
$headerlen += 2 + $extralen;
}
if ($flags & 8) // Filename
$headerlen = strpos($data, chr(0), $headerlen) + 1;
if ($flags & 16) // Comment
$headerlen = strpos($data, chr(0), $headerlen) + 1;
if ($flags & 2) // CRC at end of file
$headerlen += 2;
$unpacked = @gzinflate(substr($data, $headerlen));
if ($unpacked === FALSE)
$unpacked = $data;
return $unpacked;
}
}

以下は引用内容です:

以下为引用的内容:

$f=@file_get_contents("http://www.itlearner.com");
echo gzdecode($f);

if (!function_exists('gzdecode')) {
function gzdecode ($data) {
$flags = ord(substr($data, 3, 1));ヘッダレン = 10;
$ファイル名レン = 0;
if ($flags & 4) {
$extralen = unpack('v' ,substr($)データ、10, 2));
$extralen = $extralen[1];
$headerlen += 2 + $extralen;
if ($flags & 8) // ファイル名
$headerlen = strpos($data, chr(0), $headerlen) + 1;
if ($flags & 16) // コメント
$headerlen = strpos($ data, chr(0), $headerlen) + 1;
if ($flags & 2) // ファイルの終わりの CRC
$headerlen += 2; (substr($data, $headerlen));
if ($unpacked === FALSE)
$unpacked = $data
}
>}



メソッドの呼び出しは非常に簡単です:

以下は引用内容です:

$f=@file_get_contents("http://www.itlearner.com")
echo gzdecode($f);
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート