PHP. Руководство по PHP. 2005
Функции сжатия ZlibПред.
CLIV. Функции сжатия Zlib
Введение
Этот модуль позволяет работать со сжатыми файлами gzip (.gz) стандартным методом, наподобие функций файловой системы (исключение составляют только сокеты).
Замечание: В версии 4.0.4 появился новый протокол 'zlib:' для доступа прямого к сжатым файлам через обычные функции f*() (для этого нужно было добавить 'zlib:' в начало пути к файлу при вызове fopen().
В версии 4.3.0, префикс изменился на 'zlib://' для предотвращения многозначности в случае файлов, содержащих ':' в имени.
Требуется библиотека времени выполнения C, предоставляющая функцию fopencookie(). Насколько нам известно, такой библиотекой является только GNU libc.
Требования
Этот модуль использует библиотеку zlib, написанную Jean-loup Gailly и Mark Adler. Используйте версию zlib >= 1.0.9 с этим модулем.
Установка
Поддержка Zlib при стандартной сборке PHP отсутствует. Чтобы изменить это, добавьте ключ --with-zlib[=DIR] при запуске сценария ./configure
Версия PHP для
Windows имеет встроенную поддержку данного расширения. Это означает, что
для использования данных функций не требуется загрузка никаких
дополнительных расширений.
Замечание: Т.к. библиотека zlib отсутствует в Windows, она встроена в PHP начиная с версии 4.3.0.
Настройка во время выполнения
-Поведение этих функций зависит от установок в php.ini.
Модуль zlib предоставляет возможность сжатия передаваемых страниц (в т.ч. динамических) на лету, если браузер это поддерживает. За сжатие отвечают 3 параметра в конфигурационном файле php.ini.
Таблица 1. Конфигурационные параметры, касающиеся Zlib
Параметр | Значение по умолчанию | Переменная окружения |
---|---|---|
zlib.output_compression | "Off" | PHP_INI_ALL |
zlib.output_compression_level | "-1" | PHP_INI_ALL |
zlib.output_handler | "" | PHP_INI_ALL |
Для подробностей и определения переменных PHP_INI_* см. ini_set().
Краткое разъяснение конфигурационных
директив.
zlib.output_compression boolean/integer
Сжимать ли страницы. Если значение равно "On" в php.ini или в настройках Apache, страницы будут сжиматься если обозреватель посылает заголовок "Accept-Encoding: gzip" или "deflate". при этом в вывод будут добавлены заголовки "Content-Encoding: gzip" (соответственно "deflate") и "Vary: Accept-Encoding".
Аргументы также могут быть целого типа, так вы можете установить размер буфера (дискретизации) вывода (по умолчанию 4 Кб).
Замечание: output_handler должен быть пустым, если выбрано значение 'On'! Вместо него следует использовать zlib.output_handler.
zlib.output_compression_level integer
Уровень сжатия.
zlib.output_handler string
Если zlib.output_compression активировано здесь, указывать дополнительные обработчики вывода (output handlers) нельзя. Этот параметр делает то же, что и output_handler, но в другом порядке.
Типы ресурсов
Данное расширение не определяет никакие типы ресурсов.
Предопределенные константы
-Перечисленные ниже константы определены данным расширением и могут быть
доступны только в том случае, если PHP был собран с
поддержкой этого расширения или же в том случае, если
данное расширение подгружается во время выполнения.
FORCE_GZIP (integer)
FORCE_DEFLATE (integer)
Примеры
Здесь открывается временный файл, в него записывается строка, затем дважды печатается содержимое этого файла.
Содержание
gzclose -- Закрывает открытый gz-указатель
gzcompress -- Сжимает строку
gzdeflate -- Сжимает строку
gzencode -- Сжимает строку в формате gzip
gzeof -- Проверяет, находится ли текущая позиция в конце gz-файла
gzfile -- Считывает весь gz-файл в массив
gzgetc -- Возвращает символ из gz-файла
gzgets -- Возвращает строку из gz-файла
gzgetss -- Возвращает строку из gz-файла с удалёнными HTML-тегами
gzinflate -- Распаковывает строку
gzopen -- Открывает gz-файл
gzpassthru -- Выводит все оставшиеся данные из указателя gz-файла.
gzread -- Бинарное чтение gz-файла
gzrewind -- Перемещает индикатор позиции в gz-файле в начало
gzseek -- Перемещает индикатор позиции в gz-файле
gztell -- Возвращает текущую позицию чтения/записи в gz-файле
gzuncompress -- Распаковывает строку
gzwrite -- Бинарная запись в gz-файл
readgzfile -- Выводит содержимое gz-файла
zlib_get_coding_type -- Возвращает тип кодирования, используемый для сжатия вывода
zip_read
gzclose