Учебник РНР
Назад Вперёд

CX. Функции Zlib-компрессии

Этот модуль использует функции zlib, авторы Jean-loup Gailly и Mark Adler, для прозрачного чтения и записи архивированных файлов gzip (.gz). вы должны использовать версию zlib >= 1.0.9 с этим модулем.

Этот модуль содержит версии большинства filesystem-функций, которые работают с gzip-архивами (а также с  несжатыми файлами, но не с сокетами).

Примечание: версия 4.0.4 вводит fopen-оболочку для .gz-файлов, так что вы можете использовать специальный 'zlib:' URL для доступа к сжатым файлам прозрачно, с помощью нормальных f*() функций доступа к файлам, если введёте к filename или path префикс 'zlib:' при вызове fopen() .

В версии 4.3.0 этот специальный префикс был изменён на 'zlib://', чтобы предотвратить разночтение с именами файлов, содержащими ':'.

Это требует библиотеки времени выполнения С, которая предоставляет функцию fopencookie(). Насколько я знаю, GNU libc является единственной библиотекой, предоставляющей эту возможность.

Небольшой пример кода

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

Пример 1. Небольшой пример Zlib
<?php $filename = tempnam ('/tmp', 'zlibtest').'.gz'; print "<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"); // считать три символа print gzread($zp, 3); // выводить до конца файла и закрыть его gzpassthru($zp); print "\n"; // открыть файл и напечатать его содержимое (во второй раз) if (readgzfile($filename) != strlen($s)) { echo "Error with zlib functions!"; } unlink($filename); print "</pre>\n</h1></body>\n</html>\n"; ?>
Содержание
gzclose - закрывает открытый указатель gz-файла
gzcompress - сжимает строку
gzdeflate - выкачивает строку
gzencode - создаёт gzip-сжатуюю строку
gzeof - проверяет end-of-file в указателе gz-файла
gzfile - читает весь gz-файл в массив
gzgetc - получает символ из указателя на gz-файл
gzgets - получает строчку из указателя файла
gzgetss - получает строчку из указателя gz-файла и вырезает тэги HTML
gzinflate - закачивает выкачанную строку
gzopen - открывает gz-файл
gzpassthru - выводит оставшиеся в указателе gz-файла данные
gzputs - записывает в указатель gz-файла
gzread - Binary-safe чтение gz-файла
gzrewind - возвращает в начало позицию указателя gz-файла
gzseek - ищет указатель gz-файла
gztell - говорит указателю gz-файла позицию чтения/записи
gzuncompress - разжимает выкачанную строку
gzwrite - Binary-safe запись в gz-файл
readgzfile - выводит gz-файл

Назад Оглавление Вперёд
zip_read Вверх gzclose