PHP圧縮関数の実装: gzencode、gzdeflate、gzcompressの違い
•gzencode は、デフォルトで ZLIB_ENCODING_GZIP エンコーディングを使用し、gzip 圧縮形式を使用します。実際には、defalte アルゴリズムを使用してデータを圧縮し、ファイル ヘッダーと adler32 検証を追加します。
•gzdeflate は、デフォルトで ZLIB_ENCODING_RAW エンコーディングを使用し、deflate データ圧縮アルゴリズムを使用します。実際には、最初に LZ77 圧縮を使用し、次にハフマン コーディングを使用して圧縮します。デフォルトのエンコーディングは ZLIB_ENCODING_DEFLATE で、実際には deflate がデータの圧縮に使用されます。 zlib ヘッダーと CRC チェックが追加されました
パフォーマンスの観点から: deflate は gzip よりも優れており、zlib よりも優れています
圧縮後のテキスト ファイルのデフォルトの圧縮率の観点から: deflate は zlib よりも優れており、gzip よりも優れています
これら 2 つのアルゴリズムとグラフィック形式 PNG は deflate アルゴリズムを使用します。
deflate アルゴリズムは、LZ77 アルゴリズムとハフマン コーディングの両方を使用する可逆データ圧縮アルゴリズムです。
これはもともと Phil Katz によって彼の PKZIP アーカイブ ツールの 2 番目のバージョン用に定義され、後に RFC 1951 仕様で定義されました。
PHP の圧縮実装は、deflate、zlib、gzip 圧縮メソッドを提供する関数ライブラリである zlib に依存しています。
上記の 3 つの関数は、パラメーターのエンコーディングが同じに変更され、圧縮率が同じに設定されている場合、最終的に同じ関数が呼び出され、効果とパフォーマンスは同じになります。
コードをコピーします。 コードは次のとおりです。 #define PHP_ZLIB_ENCODING_RAW —0xf //deflate -15
#define PHP_ZLIB_EN CODING_GZIP 0x1f // gzip 15 + 16#define PHP_ZLIB_ENCODING_DEFLATE 0x0f // zlib 15
3 つの関数は、呼び出しプロセス中に他のアルゴリズムを使用するエンコーディングを直接指定できます:
コードをコピーします
コードは次のとおりです: zlib: ZLIB_ENCODING_DEFLATE
gzip : ZLIB_ENCODING_GZIPdeflate: ZLIB_ENCODING_RAW
これら 3 つの関数は、3 つのアルゴリズムの単純な呼び出しメソッドであり、より適切な名前が付けられています。 3 つの関数は同じエンコーディングを指定することで同じ効果を得ることができ、PHP では汎用圧縮関数として zlib_encode 関数も提供しています。
http://shouce.jb51.net/gzip/rfc-deflate.html
http://www.gzip.org/zlib/rfc-deflate.html
上記は、PHP 圧縮関数の実装、つまり gzencode、gzdeflate、gzcompress の違いを、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

ホット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)

ホットトピック











Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法

iPhoneのSafariでプライベートブラウジング認証をオフにする方法は?
