(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
gzencode — Создать сжатую строку gzip
$data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP ): string |false
Эта функция возвращает сжатую версию входных данных data,
аналогично выводу программы gzip.
Подробности о формате GZIP смотрите » Формат файла GZIP. Спецификация версии 4.3 (RFC 1952).
dataДанные для кодирования.
levelУровень сжатия. 0 - без сжатия, 9 - максимальное сжатие. Если не указано, будет использоваться уровень сжатия по умолчанию библиотеки zlib.
encoding
Режим сжатия, может быть FORCE_GZIP (по умолчанию)
или FORCE_DEFLATE .
Использование константы FORCE_DEFLATE
генерирует вывод, совместимый с RFC 1950, состоящий из заголовка zlib,
сжатых данных и контрольной суммы Adler.
Сжатая строка или false в случае возникновения ошибки.
Возвращаемые данные будут содержать соответствующие заголовки и структуры данных как в обычном .gz-файле, например:
Пример #1 Создание файла gzip
<?php
$data = file_get_contents("bigfile.txt");
$gzdata = gzencode($data, 9);
file_put_contents("bigfile.txt.gz", $gzdata);
?>
It may be difficult to understand the differences between "gzcompress", "gzdeflate" and "gzencode". Here are my notes:
gzcompress()
------------
Uses ZLIB_ENCODING_DEFLATE (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-deflate)
ZLIB compression algorithm as per RFC 1950.
Compatible with pigz. (Not compatible with gzip.)
Has a header (compression details, begins with 0x78) and a footer (Adler32 checksum of uncompressed data in big-endian).
gzdeflate()
------------
Uses ZLIB_ENCODING_RAW (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-raw)
DEFLATE algorithm as per RFC 1951.
No header and footer. Pure DEFLATE.
gzencode()
------------
Uses ZLIB_ENCODING_GZIP (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-gzip)
GZIP algorithm as per RFC 1952.
Compatible with gzip.
Header begins with magic number 0x1f8b, then compression method 8 (DEFLATE), no file flags, no timestamp, with operating system ID.
Footer contains CRC32 checksum of uncompressed data and then size of uncompressed data, both in little-endian.