|
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-файл
| |