deflate_add

(PHP 7, PHP 8)

deflate_add增量压缩数据

描述

deflate_add(DeflateContext $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false

增量压缩指定上下文中的数据。

参数

context

使用 deflate_init() 创建的上下文。

data

要压缩的数据块。

flush_mode

以下之一:ZLIB_BLOCKZLIB_NO_FLUSHZLIB_PARTIAL_FLUSHZLIB_SYNC_FLUSH(默认)、ZLIB_FULL_FLUSHZLIB_FINISH。通常,您希望设置 ZLIB_NO_FLUSH 以最大限度地压缩,并设置 ZLIB_FINISH 以最后一个数据块终止。有关这些常量的详细说明,请参见 » zlib 手册

返回值

返回压缩数据块,或在失败时返回 false

错误/异常

如果给出无效参数,则会生成级别为 E_WARNING 的错误。

变更日志

版本 描述
8.0.0 context 现在期望一个 DeflateContext 实例;之前,期望一个 resource

参见

添加说明

用户贡献的说明 1 条说明

1
douglasjam at gmail dot com
6 年前
关于使用压缩函数以块写入 gzip 编码文件的示例。

<?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