PHP.mk документација

inflate_add

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.inflate-add.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека function.inflate-add.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
inflate_add

Референца за `function.inflate-add.php` со подобрена типографија и навигација.

function.inflate-add.php

inflate_add

Интерфејсот SessionUpdateTimestampHandlerInterface

inflate_addПостепено декомпресирајте ги кодираните податоци

= NULL

inflate_add(InflateContext $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false

Постепено ги декомпресира кодираните податоци во наведениот context.

Ограничување: информациите од заглавието на компресираните GZIP податоци не се достапни.

Параметри

context

Контекст креиран со inflate_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 при неуспех.

Errors/Exceptions

Ако се дадени невалидни параметри, декомпресирањето на податоците бара претходно дефиниран речник, но не е специфициран, компресираниот поток е оштетен или има невалидна сума за проверка, грешка од ниво E_WARNING .

Дневник на промени

Верзија = NULL
8.0.0 context очекува InflateContext инстанца сега; претходно, а resource се очекуваше.

Види Исто така

  • inflate_init() - Иницијализира контекст за инкрементално декомпресирање

Белешки од корисници 1 белешка

burp на -only-in-German-fuerspam dot de
пред 2 години
It's not obvious how to use this for _incremental_ decompression:
You feed _the compressed data_ into inflate_add() _in pieces_.
The internal state of the zlib context will make sure than you can split at any point and still get the correct total data out, as long as you keep reading until the end.

In this way, you don't have to hold the complete uncompressed data in memory at any one time (and don't have to materialize it either as a file for gzopen() etc.), allowing you to parse files much bigger than the available php memory limit.

<?php
/* a good step size depends on the input's level of compression,
unfortunately there's no obvious way to know that beforehand;
in doubt instead choose a rather small value and glue the pieces together,
until there's enough data for processing */
$step = 500000;

$dataGz = load_gzip_compressed_data_to_string();

$start = 0;
$outLen = 0;
$ctxt = inflate_init(ZLIB_ENCODING_GZIP);
$status = inflate_get_status($inflCtxt);

while($status == ZLIB_OK) {
    $split = substr($dataGz, $start, $step);
    $dataFragment = inflate_add($inflCtxt, $split);
    /* process fragment, potentially keep parts across iterations */
    $outLen += strlen($dataFragment);
    $status = inflate_get_status($inflCtxt);
    $start += $step;
}
echo 'Input: ' . strlen($dataGz) . ' Bytes / Output: ' . $outLen . ' Bytes.';
?>

N.B.: Archives of extremely high compression will still bomb out with a stupid and unnecessary memory exhaustion, as it's not possible to define a limit in inflate_init() similar to gzuncompress().
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.