検索
ホームページバックエンド開発PHPチュートリアルPHP は zlib 拡張機能を使用してページの GZIP 圧縮出力を実装します_PHP チュートリアル

PHP は zlib 拡張機能を使用してページの GZIP 圧縮出力を実装します_PHP チュートリアル

Jul 13, 2016 am 10:59 AM
gzipphpzlib使用圧縮成し遂げる拡大するテクノロジーはい出力ページ

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 接続: 閉じる

金曜日 1 月 25 日 17:53:10 2008 X-Powered-By: PHP/5.2.5
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

http://www.bkjia.com/PHPjc/631912.html技術記事 GZIP (GNU-ZIP) は圧縮テクノロジです。 GZIP 圧縮後、ページ サイズは元のサイズの 30%、またはさらに小さくなることがあります。こうすることで、ユーザーは閲覧中に爽快感と幸福感を得ることができます。 GZを達成するには...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。