- CLXX. Функции сжатия Zlib
- Php with zlib dir
- Регулярные выражения (совместимые с Perl)
- Изменения обработки INI-файлов
- Миграция на pkg-config
- Экранирование CSV
- Фильтрация данных
- GD
- Фреймворк хеш-кодов HASH
- Intl
- Облегчённый протокол доступа к каталогам (LDAP)
- Libxml
- Многобайтовые строки
- OPcache
- Хеширование паролей
- PEAR
- Reflection
- SimpleXML
- SQLite3
- Zip
- php zip installation on linux
- Solution 2
- Related videos on Youtube
- Daniel DiPaolo
- Comments
CLXX. Функции сжатия 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 предоставляет возможность сжатия передаваемых страниц (в т.ч. динамических) на лету, если браузер это поддерживает. За сжатие отвечают три параметра в конфигурационном файле 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 |
Краткое разъяснение конфигурационныхдиректив.
Сжимать ли страницы. Если значение равно «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 активировано здесь, указывать дополнительные обработчики вывода (output handlers) нельзя. Этот параметр делает то же, что и output_handler, но в другом порядке.
Данное расширение не определяет никакие типы ресурсов.
Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.
Здесь открывается временный файл, в него записывается строка, затем дважды печатается содержимое этого файла.
Пример 1. Небольшой пример использования Zlib
$filename = tempnam ( ‘/tmp’ , ‘zlibtest’ ) . ‘.gz’ ;
echo «\n \n\n\n» ;
$s = «Only a test, test, test, test, test, test, test, test!\n» ;
// открыть файл для записи с максимальным сжатием
$zp = gzopen ( $filename , «w9» );
// записать строку в файл
gzwrite ( $zp , $s );
// открыть файл для чтения
$zp = gzopen ( $filename , «r» );
// прочитать три символа
echo gzread ( $zp , 3 );
// выводить до конца файла, затем закрыть его
gzpassthru ( $zp );
gzclose ( $zp );
// открыть файл и напечатать его содержимое (во второй раз)
if ( readgzfile ( $filename ) != strlen ( $s )) echo «Error with zlib functions!» ;
>
unlink ( $filename );
echo «\n