deflate_add
(PHP 7, PHP 8)
deflate_add — インクリメンタルにデータを圧縮する
説明
指定されたコンテクストで、インクリメンタルにデータを圧縮します。
パラメータ
context
-
deflate_init() で生成したコンテクスト
data
-
圧縮するデータ
flush_mode
-
ZLIB_BLOCK
,ZLIB_NO_FLUSH
,ZLIB_PARTIAL_FLUSH
,ZLIB_SYNC_FLUSH
(デフォルト),ZLIB_FULL_FLUSH
,ZLIB_FINISH
のいずれかです。 通常は、圧縮率を最大にするために、ZLIB_NO_FLUSH
を指定するでしょうし、 データの最後のチャンクで終了させるためにZLIB_FINISH
を指定するでしょう。 これらの定数の詳細な説明は » zlib manual を参照ください。
戻り値
圧縮されたデータのチャンクを返します。
失敗した場合に false
を返します
エラー / 例外
不正な引数が与えられた場合、
エラーレベル E_WARNING
が生成されます。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 |
context は、
DeflateContext クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、resource を期待していました。
|
参考
- deflate_init() - インクリメンタルな圧縮コンテキストを初期化する
+add a note
User Contributed Notes 1 note
douglasjam at gmail dot com ¶
6 years ago
Example about to use deflate functions to write a gzip encoded file in chunks.
<?php
$handler = fopen('/tmp/test.csv', 'w');
$deflateContext = deflate_init(ZLIB_ENCODING_GZIP, ['level' => 9]);
$strings = [
'Hello, how are you?' . PHP_EOL,
'I am fine thanks' . PHP_EOL,
'Hello, how are you?' . PHP_EOL,
];
foreach ($strings as $string) {
fwrite($handler, deflate_add($deflateContext, $string, ZLIB_NO_FLUSH));
}
fwrite($handler, deflate_add($deflateContext, '', ZLIB_FINISH));
fclose($handler);
echo gzdecode(file_get_contents('/tmp/test.csv'));
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google