gzencode
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
gzencode — gzip 圧縮された文字列を作成する
説明
この関数は、入力 data
を
gzip プログラムの出力と互換性のある形式で圧縮
して返します。
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);
?>
参考
- gzdecode() - gzip 圧縮された文字列をデコードする
- gzdeflate() - 文字列を deflate 圧縮する
- gzinflate() - deflate圧縮された文字列を解凍する
- gzuncompress() - 圧縮された文字列を解凍する
- gzcompress() - 文字列を圧縮する
- » ZLIB Compressed Data Format Specification (RFC 1950)
+add a note
User Contributed Notes 2 notes
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)
----------------------------------------------
jp dot amarok at email dot cz ¶
2 months ago
It may be difficult to understand the differences between "gzcompress", "gzdeflate" and "gzencode". Here are my notes:
gzcompress()
------------
Uses ZLIB_ENCODING_DEFLATE (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-deflate)
ZLIB compression algorithm as per RFC 1950.
Compatible with pigz. (Not compatible with gzip.)
Has a header (compression details, begins with 0x78) and a footer (Adler32 checksum of uncompressed data in big-endian).
gzdeflate()
------------
Uses ZLIB_ENCODING_RAW (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-raw)
DEFLATE algorithm as per RFC 1951.
No header and footer. Pure DEFLATE.
gzencode()
------------
Uses ZLIB_ENCODING_GZIP (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-gzip)
GZIP algorithm as per RFC 1952.
Compatible with gzip.
Header begins with magic number 0x1f8b, then compression method 8 (DEFLATE), no file flags, no timestamp, with operating system ID.
Footer contains CRC32 checksum of uncompressed data and then size of uncompressed data, both in little-endian.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google