International PHP Conference 2019 - Spring Edition

deflate_add

(PHP 7)

deflate_addИнкрементальное сжатие данных

Описание

string deflate_add ( resource $context , string $data [, int $flush_mode = ZLIB_SYNC_FLUSH ] )

Инкрементальное сжатие данных в указанном контексте.

Список параметров

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.

Смотрите также

  • deflate_init() - Инициализировать контекст инкрементального сжатия
add a note add a note

User Contributed Notes 1 note

up
0
douglasjam at gmail dot com
3 months 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'));
To Top