CascadiaPHP 2024

gzencode

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzencodegzip 圧縮された文字列を作成する

説明

gzencode(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP): string|false

この関数は、入力 datagzip プログラムの出力と互換性のある形式で圧縮 して返します。

GZIPファイルフォーマットに関する詳細な情報については、次のドキュ メントを参照ください。 » GZIP file format specification version 4.3 (RFC 1952)

パラメータ

data

エンコードするデータを指定します

level

圧縮レベルを指定します。 圧縮をしない場合に 0、最大限の圧縮を行う場合に9を指定可能です。 指定されない場合のデフォルト圧縮レベルは、 zlib ライブラリのデフォルト圧縮レベルになります。

encoding

エンコーディングモードを指定します。 FORCE_GZIP (デフォルト) もしくは FORCE_DEFLATE を指定可能です。

FORCE_DEFLATE は RFC 1950 準拠の出力を生成します。 これは、zlib ヘッダ、圧縮したデータ、 そして Adler チェックサムで構成されます。

戻り値

エンコードされた文字列、もしくはエラー発生時に false

結果データは標準的な .gz ファイルを構成するための適当なヘッダとデータ構造を含みます。

例1 gzip ファイルの生成

<?php
$data
= file_get_contents("bigfile.txt");
$gzdata = gzencode($data, 9);
file_put_contents("bigfile.txt.gz", $gzdata);
?>

参考

add a note

User Contributed Notes 1 note

up
13
Sam Dowling
13 years ago
this is a benchmark test of gzencode (.txt file)
----------------------------------------------
original file size = 3.29 MB (3,459,978 bytes)
compress lvl 1 = 1.09 MB (1,144,006 bytes)
compress lvl 2 = 1.06 MB (1,119,518 bytes)
compress lvl 3 = 1.03 MB (1,085,567 bytes)
compress lvl 4 = 953 KB (976,538 bytes)
compress lvl 5 = 909 KB (931,486 bytes)
compress lvl 6 = 910 KB (932,516 bytes)
compress lvl 7 = 910 KB (932,608 bytes)
compress lvl 8 = 910 KB (932,646 bytes)
compress lvl 9 = 910 KB (932,652 bytes)
----------------------------------------------
To Top