gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencodeСжимает строку в формате gzip

Описание

string gzencode ( string $data [, int $level = -1 [, int $encoding_mode = FORCE_GZIP ]] )

Возвращает сжатую версию входных данных data, аналогично выводу программы gzip.

Подробности о формате GZIP см. » Формат файла GZIP. Спецификация версии 4.3 (RFC 1952).

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

data

Данные для сжатия.

level

Уровень сжатия. 0 - без сжатия, 9 - максимальное сжатие. Если не указано, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

encoding_mode

Режим сжатия, может быть FORCE_GZIP (по умолчанию) или FORCE_DEFLATE.

До PHP 5.4.0 в случае использования FORCE_DEFLATE, возвращалась строка, сжатая по стандартному алгоритму zlib deflate (с заголовками zlib) после заголовка файла gzip, но без проверочной суммы crc32 в конце.

Начиная с версии PHP 5.4.0, использование константы FORCE_DEFLATE генерирует вывод, совместимый с RFC 1950, состоящий из заголовка zlib, сжатых данных и контрольной суммы Adler.

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

Сжатая строка или FALSE в случае ошибки.

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

Версия Описание
5.4.0 FORCE_DEFLATE теперь генерирует вывод, совместимый с RFC 1950.
4.2.0 Добавлен аргумент encoding_mode

Примеры

Возвращаемые данные будут содержать соответствующие заголовки и структуры данных как в обычном .gz-файле, например:

Пример #1 Создание файла gzip

<?php
$data 
implode(""file("bigfile.txt"));
$gzdata gzencode($data9);
$fp fopen("bigfile.txt.gz""w");
fwrite($fp$gzdata);
fclose($fp);
?>

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

Коментарии

Автор:
this is a benchmark test of gzencode (.txt file)
----------------------------------------------
original file size = 3.29 MB (3,459,978 bytes)
compress lvl 1 = 1.09 MB (1,144,006 bytes)
compress lvl 2 = 1.06 MB (1,119,518 bytes)
compress lvl 3 = 1.03 MB (1,085,567 bytes)
compress lvl 4 = 953 KB (976,538 bytes)
compress lvl 5 = 909 KB (931,486 bytes)
compress lvl 6 = 910 KB (932,516 bytes)
compress lvl 7 = 910 KB (932,608 bytes)
compress lvl 8 = 910 KB (932,646 bytes)
compress lvl 9 = 910 KB (932,652 bytes)
----------------------------------------------
2011-07-06 10:30:55
http://php5.kiev.ua/manual/ru/function.gzencode.html
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.
2024-10-09 18:18:20
http://php5.kiev.ua/manual/ru/function.gzencode.html

    Поддержать сайт на родительском проекте КГБ