создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

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)

Примеры

Здесь открывается временный файл, в него записывается строка, затем дважды печатается содержимое этого файла.

Пример 1. Небольшой пример использования Zlib

<?

$filename = tempnam('/tmp', 'zlibtest') . '.gz';

echo "<html>\n<head></head>\n<body>\n<pre>\n";

$s = "Only a test, test, test, test, test, test, test, test!\n";

//открыть файл для записи с максимальным сжатием

$zp = gzopen($filename, "w9");

//записать строку в файл

gzwrite($zp, $s);

//акрыть файл

gzclose($zp);

//открыть файл для чтения

$zp = gzopen($filename, "r");

//прочитать 3 символа

echo gzread($zp, 3);

//выводить до конца файла, затем закрыть его

gzpassthru($zp);

gzclose($zp);

echo "\n";

//открыть файл и напечатать его содержимое (во второй раз)

if (readgzfile($filename) != strlen($s)){

echo "Error with zlib functions!";

}

unlink($filename);

echo "</pre>\n</body>\n</html>\n";

?>

Содержание

gzclose -- Закрывает открытый gz-указатель

gzcompress -- Сжимает строку

gzdeflate -- Сжимает строку

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

gzeof -- Проверяет, находится ли текущая позиция в конце gz-файла

gzfile -- Считывает весь gz-файл в массив

gzgetc -- Возвращает символ из gz-файла

gzgets -- Возвращает строку из gz-файла

gzgetss -- Возвращает строку из gz-файла с удалёнными HTML-тегами

gzinflate -- Распаковывает строку

gzopen -- Открывает gz-файл

gzpassthru -- Выводит все оставшиеся данные из указателя gz-файла.

gzputs -- Псевдоним gzwrite()

gzread -- Бинарное чтение gz-файла

gzrewind -- Перемещает индикатор позиции в gz-файле в начало

gzseek -- Перемещает индикатор позиции в gz-файле

gztell -- Возвращает текущую позицию чтения/записи в gz-файле

gzuncompress -- Распаковывает строку

gzwrite -- Бинарная запись в gz-файл

readgzfile -- Выводит содержимое gz-файла

zlib_get_coding_type -- Возвращает тип кодирования, используемый для сжатия вывода

Пред.

Начало

След.

zip_read

Уровень выше

gzclose

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

Ваше письмо×
Free Web Hosting