ホームページ >php教程 >php手册 >PHP プログラムの高速化探索の圧縮出力 gzip

PHP プログラムの高速化探索の圧縮出力 gzip

WBOY
WBOYオリジナル
2016-06-21 09:15:491041ブラウズ

プログラム

Apache の mod_gzip モジュールを使用すると、gzip 圧縮アルゴリズムを使用して、Apache サーバーによって公開された Web ページのコンテンツを圧縮し、クライアントのブラウザに送信できます。純粋なテキスト コンテンツの場合、その効果は非常に明白で、元のサイズの約 30% ~ 40% に圧縮でき、ユーザーの閲覧速度が大幅に向上します。

Gzip にはクライアント ブラウザのサポートが必要です。現在、IE、Netscape、Mozilla などのほとんどのブラウザが gzip をサポートしているため、この方法は試してみる価値があります。 PHP で事前定義された変数 $_SERVER[‘HTTP_ACCEPT_ENCODING’] を使用して、クライアントのブラウザーが gzip をサポートしているかどうかを判断できます。

gzip1.php

if(ereg('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) {
//ブラウザはサポートしています
} else {
//ブラウザはサポートしていないので、他のコンテンツを出力します
}
>?
次に、上記の PHP プログラムを拡張し、ob_start(ob_gzhandler) を使用して Web ページのコンテンツを圧縮し、バッファーに保存して、gzip をサポートするブラウザーに送信します。ブラウザーは、圧縮されたコンテンツを自動的に解凍して表示します。

gzip2.php

define('MAX',100);

if(ereg('gzip',$_SERVER['HTTP_ACCEPT_ENCODING']))
{
//ブラウザは gzip をサポートし、コンテンツを圧縮してバッファリングしますOutput
ob_start("ob_gzhandler");
$output = '';

for($i=0;$i<=MAX;$i++)
{
$output .= "これは $i 行です "; }
echo "ブラウザは gzip 圧縮出力をサポートしています";
echo $output;
else
{
//ブラウザはサポートしていません、直接出力します
for($i=0;$i<=MAX;$ i++)
{
$output .= "これは $i 行です ";
}

echo "ブラウザは gzip 圧縮出力をサポートしていません";
echo $output
}
?>
Web ページの HTTP ヘッダーgenerated using gzip Compression 通常の Web ページと比較すると、次のような情報が多くなります:

Content-Encoding: gzip
Content-Length: 270
より詳細な情報を取得したい場合は、mod_gzip プロジェクトのホームページを参照してください:

http://sourceforge .net/projects/mod-gzip/

同様に、mod_deflate も使用できますが、圧縮率は mod_gzip よりわずかに低くなります。 zip 関数の呼び出しにはサーバー メモリが必要なため、必要に応じて注意して使用してください。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。