PHP は zlib 拡張機能を使用してページの GZIP 圧縮出力を実装します_PHP チュートリアル
GZIP (GNU-ZIP) は圧縮技術です。 GZIP 圧縮後、ページ サイズは元のサイズの 30%、またはさらに小さくなることがあります。こうすることで、ユーザーは閲覧中に爽快感と幸福感を得ることができます。
GZIP 圧縮ページを実装するには、ブラウザーとサーバーがそれをサポートする必要があります。実際には、ブラウザーに送信された後、ブラウザーはそれを解凍して解析します。現在、ほとんどのブラウザは GZIP ページの解析をサポートしているため、ブラウザについて心配する必要はありません。サーバー側でページを圧縮してブラウザに出力するだけです。
少し冗長ですので、本題に入りましょう:
圧縮 Cookie を作成する場合と同様に、まず原材料を取得する必要があり、ページを圧縮するには、まず出力するコンテンツを取得する必要があります。 PHP の ob_start() (ob => 出力バッファ) 関数は、この機能を実現します。これは、プログラム内で出力するコンテンツを最初に「バッファ」と呼ばれる場所に置くことができます。 . 原材料を一時的に置くための作業台。
この関数はページが出力される前に使用する必要があるため、通常はコードの先頭に配置されます。作業台のようなものなので、原材料が到着する前に準備しておかないと、原材料が到着したときに置き場所がなくて問題が発生します。 ob_start() を使用してページを圧縮した後、圧縮 Cookie を作成できます。いいえ、ページは圧縮されている必要があります。しかし、コンプレッサー EZ が不足しているようです。PHP の zlib 拡張機能を使用してコンプレッサーを作成しましょう。
function ob_gzip($content) // $content は圧縮されるページのコンテンツ、またはビスケットの材料です
If( !headers_sent() && // ページヘッダー情報がまだ出力されていない場合
extension_loaded("zlib") && // そして、zlib 拡張機能が PHP にロードされました
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) //ブラウザは GZIP ページを受け入れることができると表示します
{
$content = gzencode($content." n//このページは圧縮されています",9); 圧縮するコンテンツに「//このページは圧縮されています」というコメントラベルを付けて、gzencode( ) zlib が提供する関数 圧縮レベル 9 の場合、このパラメータの値の範囲は 0 ~ 9 で、0 は圧縮なし、9 は最大の圧縮を意味します。 もちろん、圧縮度が高くなるほど、CPU の消費量も増加します。
//次に、header() 関数を使用してヘッダー情報をブラウザーに送信し、このページが GZIP で圧縮されていることをブラウザーに伝えます。
header("コンテンツエンコーディング: gzip"); header("Vary: Accept-Encoding");
header("Content-Length: ".strlen($content));
}
Return $content; // 圧縮されたコンテンツを返すか、圧縮された Cookie をワークベンチに送り返します。
}
コンプレッサーの準備ができたら、コンプレッサーをワークベンチに置き、元の ob_start() は
になります。
ob_start('ob_gzip'); //はい、ob_start() にパラメータを追加するだけです。パラメータ名は作成したばかりの「コンプレッサー」の関数名です。このようにして、コンテンツがバッファーに入ると、PHP は ob_gzip 関数を呼び出してコンテンツを圧縮します。
ob_end_flush(); //バッファを終了し、内容を出力します。もちろん、バッファの内容はプログラムの実行終了時に自動的に出力されるため、この関数は必要ありません。
// ob_gzip コンプレッサーを使用してワークベンチを有効にする
ob_start('ob_gzip');
//圧縮するコンテンツを準備します
for($i=0; $i
{
echo('ここに圧縮ビスケットの原料があります、ここに圧縮ビスケットの原料があります、原料');
}
//圧縮結果を出力
ob_end_flush();
//これは ob_gzip コンプレッサーです
関数 ob_gzip($content)
{
If( !headers_sent() &&
extension_loaded("zlib") &&
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))
{
$content = gzencode($content." n//このページは圧縮されています",9);
header("コンテンツエンコーディング: gzip");
header("Vary: Accept-Encoding");
header("Content-Length: ".strlen($content));
}
$content を返します。
}
?>
実際にテストした結果、上記のコードで GZIP が使用されていない場合は 4.69KB = 4802.56B ですが、GZIP を有効にすると 104B に減少します
、うーん...数学が苦手かもしれないので計算してみます。元の圧縮のパーセンテージ。 。
さらに、以下は FlashGet を使用して取得されたログ情報です。プログラムに追加されたヘッダー情報を確認できます。
引用:
金曜日 1 月 25 日 17:53:10 2008 HTTP/1.1 200 OK
金曜日 1 月 25 日 17:53:10 2008 サーバー: Microsoft-IIS/5.1
Fri Jan 25 17:53:10 2008 日付: Fri, 25 Jan 2008 09:53:10 GMT
Fri Jan 25 17:53:10 2008 接続: 閉じる
Fri Jan 25 17:53:10 2008 コンテンツ エンコーディング: gzip
Fri Jan 25 17:53:10 2008 変更: Accept-Encoding
Fri Jan 25 17:53:10 2008 Content-Length: 104
2008 年 1 月 25 日金曜日 17:53:10 コンテンツ タイプ: text/html
http://www.bkjia.com/PHPjc/631912.html
www.bkjia.com

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています
