ホームページ  >  記事  >  バックエンド開発  >  PHP で動的ページをキャッシュおよび圧縮する方法の紹介

PHP で動的ページをキャッシュおよび圧縮する方法の紹介

WBOY
WBOYオリジナル
2016-07-25 08:59:001046ブラウズ
  1. void ob_start(void);
  2. ?>
コピーコード

は、すべての出力を内部キャッシュ(バッファ)にリダイレクトするようにPHPプロセッサに指示します。 ob_start が呼び出されるまで、出力はブラウザに送信されません。

  1. string ob_get_contents(void);
  2. ?>
コードをコピー

この関数は、「出力バッファ」を文字列として返します。この関数を呼び出して、蓄積された出力をブラウザに送信できます。 (バッファリング機能をオフにした場合のみ!!)

  1. int ob_get_length(void);
  2. ?>
コードをコピー

キャッシュ内の文字列の長さを返します。

  1. void ob_end_clean(void);
  2. ?>
コードをコピー

出力キャッシュをクリアし、出力キャッシュをオフにします。この関数は、キャッシュ内のコンテンツをブラウザに出力する前に使用する必要があります。 void 501([int フラグ]) 暗黙的フラッシュ アクション スイッチのオン/オフを切り替えるために使用されます (デフォルトはオフ)。フラッシュがオンになっている場合、print/echo またはその他の出力コマンドが呼び出されるたびに、出力コンテンツがすぐにブラウザーに送信されます。

出力コントロールを使用して PHP 出力を圧縮する 出力を圧縮するには、PHP4 でコンパイルされた Zlib 拡張パッケージを使用する必要があります。必要に応じて、PHP ドキュメントで Zlib パッケージのインストール手順を参照できます。 まず、出力キャッシュを初期化します。

  1. ob_start();
  2. ob_implicit_flush(0);
  3. ?>
コード

をコピーした後、print、echo、またはその他の任意のメソッドを使用してすべての出力を生成しますコンテンツ、例:

  1. print("これは圧縮された出力です!");
  2. ?>
コードをコピーします

ページが生成された後、出力コンテンツを返します。

  1. $contents = ob_get_contents();
  2. ob_end_clean();
  3. ?>
コード

をコピーした後、ブラウザが圧縮データをサポートしているかどうかを確認する必要があります。サポートされている場合、ブラウザは ACCEPT-ENCODEING HTTP ヘッダーをサーバーに送信します。 $HTTP_ACCEPT_ENCODING 変数に「gzip,deflate」文字列があるかどうかを確認するだけで済みます。

  1. if(ereg('gzip, deflate',$HTTP_ACCEPT_ENCODING)) {
  2. // ここに Gzip 圧縮コンテンツを生成します
  3. } else {
  4. echo $contents;
  5. }
  6. ?> ;
コードをコピー

この方法は使い方が簡単で、構造が明確です。 1 2 次のページ 最後のページ



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