略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: deflate_add

2024-11-14

deflate_add

(PHP 7, PHP 8)

deflate_addIncrementally deflate data

说明

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

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 set ZLIB_NO_FLUSH to maximize compression, and ZLIB_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.

参见

add a noteadd a note

User Contributed Notes 1 note

up
1
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'));

官方地址:https://www.php.net/manual/en/function.deflate-add.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3