CakeFest 2024: The Official CakePHP Conference

deflate_init

(PHP 7, PHP 8)

deflate_initИнициализировать контекст инкрементального сжатия

Описание

deflate_init(int $encoding, array $options = []): DeflateContext|false

Инициализирует контекст инкрементального сжатия с использованием указанной кодировки encoding.

Обратите внимание, что опция window задаёт только размер окна алгоритма, в отличие от фильтров zlib, где одноимённая опция также используется для установки используемой кодировки; кодировка должна быть установлена с помощью параметра encoding.

Ограничения: в текущий момент невозможно установить информацию заголовка для сжатого потока GZIP, которая устанавливается следующим образом: подпись GZIP (\x1f\x8B); метод сжатия (\x08 == DEFLATE); 6 нулевых байтов; текущая операционная система (\x00 = Windows, \x03 = Unix и т.д.)

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

encoding

Одна из констант ZLIB_ENCODING_*.

options

Ассоциативный массив, который может содержать следующие элементы:

level

Уровень сжатия в диапазоне -1..9; по умолчанию -1.

memory

Уровень памяти сжатия в диапазоне 1..9; по умолчанию 8.

window

Размер окна zlib (логарифмический) в диапазоне 8..15; по умолчанию 15. zlib изменяет размер окна с 8 на 9, а с zlib 1.2.8 будет выдавать предупреждение, если запрашивается размер окна равный 8 для ZLIB_ENCODING_RAW или ZLIB_ENCODING_GZIP.

strategy

Одна из констант: ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED или ZLIB_DEFAULT_STRATEGY (по умолчанию).

dictionary

Строка или массив строк текущего словаря (по умолчанию предустановленного словаря нет).

Возвращаемые значения

Возвращает ресурс контекста сжатия (zlib.deflate) или false, если возникла ошибка.

Ошибки

Если в options была передана некорректная опция или контекст не может быть создан, то будет вызвана ошибка уровня E_WARNING.

Список изменений

Версия Описание
8.0.0 В случае успешного выполнения функция возвращает экземпляр DeflateContext; раньше, возвращался ресурс (resource).

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

  • deflate_add() - Инкрементальное сжатие данных
  • inflate_init() - Инициализация контекста инкрементальной распаковки
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top