(PHP 7, PHP 8)
deflate_add — Инкрементальное сжатие данных
$context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH ): string |false Инкрементальное сжатие данных в указанном контексте.
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.
Возвращает блок сжатых данных или false , если возникла ошибка.
В случае некорректных аргументов будет вызвана ошибка
уровня E_WARNING .
| Версия | Описание |
|---|---|
| 8.0.0 |
context ожидает экземпляр DeflateContext ;
раньше, ожидался ресурс (resource ).
|
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'));