ホームページ >バックエンド開発 >PHPチュートリアル >PHP、JS、CSS、その他のテキスト タイプ コードを圧縮する_PHP チュートリアル
ご存知のとおり、送信中のコードのサイズを小さくすると、ページの送信速度が向上し、Web ページをより速く開くことができます。これは、帯域幅のボトルネックの理論に基づいています。もちろん、サーバーの速度は他の多くの要因の影響を受けます。 PHP コードの実行速度、データベースのアクセス速度、ディスクの読み書き IO 速度などがありますが、チャイナ テレコムやチャイナ ネットコムなどの通信会社の制約により、帯域幅への影響は非常に大きくなります。 、サーバーのネットワーク帯域幅があまり豊富ではないため、圧縮コードの送信により帯域幅が大幅に節約されます。
この記事では、Gzip 圧縮を使用して対応するコードを自動的に圧縮する方法について説明します。これは、ブラウザー実行のために訪問者のブラウザー上のコードに自動的に復元されます。コードを記述する際の適切なスタイルとスペース節約の方法については、この記事には含まれていません。記事。
GZIP は、UNIX システムでのファイル圧縮のために Jean-loup Gailly と Mark Adler によって最初に作成されました。 LINUX では、拡張子 .gz が付いたファイルをよく使用しますが、それらは GZIP 形式です。現在、インターネット上で使用される非常に一般的なデータ圧縮形式またはファイル形式になっています。 HTTP プロトコル上の GZIP エンコードは、WEB アプリケーションのパフォーマンスを向上させるために使用されるテクノロジーです。トラフィックの多い WEB サイトでは、ユーザーがより高速な速度を体験できるように、GZIP 圧縮テクノロジがよく使用されます。
まず、Web サイトの各ページが Gzip 圧縮を使用しているかどうかをテストします。これが テスト ツールです
。現在、Gzip 圧縮を実装するには 2 つの主流な方法があります。
1. mod_deflate モジュール
mod_deflate モジュールは DEFLATE 出力フィルターを提供します。これにより、サーバーはクライアントに送信する前に出力コンテンツを圧縮して (gzip データ形式圧縮も使用する必要があります。deflate は圧縮アルゴリズムです)、帯域幅を節約します。 Apache 1.3.x 時代では、これを実装するために mod_gzip モジュールが使用されており、Apache2 にはすでに mod_deflate モジュールが組み込まれています。
この方法では、Apache の http サーバー ソフトウェアがインストールされ、deflate モジュールがロードされる必要があります。
使用方法:
Web パブリッシング ディレクトリの .htaccess ファイルを追加します。
これにより、Apache は html、xml、php、js、css などのファイルをパブリッシュするときにデータを送信するために Gzip を使用します。この方法は簡単で、一度だけ実行できます。ただし、一般的に使用される deflate モジュールはインストールされません。 Apache では必ずしもそうであるとは限りませんが、それでも方法はあります:
2. ob_gzhandler関数
ホスト要件: PHP をサポート、PHP バージョンは 4.0.4 以降、zlib ライブラリがインストールされている
PHP ファイル転送中に圧縮するには、元の PHP ファイルの最初の行に
を追加するだけです
最後に
を追加します
コピー時に通常の PHP 形式に戻します。
js ファイルの場合は、元の js ファイルの最初の行に
を追加します。
最後に
も追加します
次に、それを abc.js.PHP のようなファイルとして保存し、すべての html、PHP、およびその他のファイルをこれを指すように変更します。
変更
のために
a.html ファイルの場合は、アクセスするために a.PHP に変更するだけです。元の URL を保持したい場合は、.htaccess 疑似 URL を変更するか、Web ページのジャンプを作成します。これに基づいて他の CSS や他のテキストを推定できます。 。 かわった。圧縮パフォーマンスの説明: jQuery ライブラリのソース コードは約 50k ですが、最初にコードを記述し、スペースを削除したり、関数を組み合わせたりして 26k に減らし、その後 GZIP を使用して 14k に圧縮するときに最適化されます。
他のウェブサイトの圧縮性能の比較表を添付します。図にある 3 つの方法はすべて GZIP ですが、実行方法が異なります。