deflate_add
(PHP 7, PHP 8)
deflate_add — Incrementally deflate data
说明
Incrementally deflates data in the specified context.
参数
-
context
-
A context created with deflate_init().
-
data
-
A chunk of data to compress.
-
flush_mode
-
One of
ZLIB_BLOCK
,ZLIB_NO_FLUSH
,ZLIB_PARTIAL_FLUSH
,ZLIB_SYNC_FLUSH
(default),ZLIB_FULL_FLUSH
,ZLIB_FINISH
. Normally you will want to setZLIB_NO_FLUSH
to maximize compression, andZLIB_FINISH
to terminate with the last chunk of data. See the » zlib manual for a detailed description of these constants.
返回值
Returns a chunk of compressed data, 或者在失败时返回 false
.
错误/异常
If invalid arguments are given, an error of level
E_WARNING
is generated.
更新日志
版本 | 说明 |
---|---|
8.0.0 |
context expects a DeflateContext
instance now; previously, a resource was expected.
|
参见
- deflate_init() - Initialize an incremental deflate context

User Contributed Notes 1 note
douglasjam at gmail dot com ¶
3 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'));