9.2. Функции, работающие со сжатыми файлами
Функции, описанные в этом разделе, используют одну из двух библиотек сжатия: zlib или bzip2. Библиотека zlib используется и таким механизмом сжатия GNU, как gzip, созданным Жаном-Лу Гайлом (Jean-loup Gaill) и Марком Адлером (Mark Adler). Об этой библиотеке можно узнать подробнее на Web-странице библиотеки zlib по адресу <http://www.cdrom.com/pub/infozip/zlib/>. Библиотека bzip2 была разработана Джулиан Сеуорд (Julian Seward) и работает с утилитой командной строки bzip2. Подробнее о ней можно узнать на Web-странице bzip2 по адресу <http://sources.redhat.com/bzip2/>.
Большинство функций для операций чтения/записи в файлы продублированы здесь и функционируют подобным образом. Одним из различий является недостаток поддержки спецификации файлов с использованием протокола HTTP или FTP.
Функции, предназначенные для упаковки и распаковки строк, работающие с этими двумя библиотеками, описываются в главе 12, "Кодирование и декодирование".
boolean bzclose(resource file)
Эта функция закрывает поток, открытый функцией bzopen.
integer bzerrno(resource file)
Эта функция возвращает номер последней ошибки для заданного потока, открытого функцией bzopen.
array bzerror(resource file)
Функция bzerror возвращает массив, состоящий из двух элементов, с описанием последней ошибки для заданного потока, открытого с помощью bzopen. Элемент errno содержит номер ошибки, а элемент errstr - ее описание.
string bzerrstr(resource file)
Эта функция возвращает описание последней ошибки для потока, открытого функцией bzopen.
boolean bzflush(resource file)
Функция bzflush сбрасывает содержимое буфера записи в поток, открытый с помощью функции bzopen.
resource bzopen(string filename, string mode)
Функция bzopen открывает поток на файл, сжатый с помощью функции bzip2. Аргумент mode полностью соответствует спецификации, используемой функцией fopen, приведенной в табл. 9.4. Потоку возвращается дескриптор ресурса, а в случае ошибки - значение FALSE.
string bzread(resource file, integer length)
Функция bzread осуществляет чтение из сжатого файла, открытого с помощью функции bzopen. Необязательный аргумент length устанавливает максимальную длину возвращаемой строки, которая по умолчанию равна 1024 символам.
integer bzwrite(resource file, string data, integer length)
Функция bzwrite (листинг 9.49) записывает строку в дескриптор файла, открытого с помощью функции bzopen. Необязательный аргумент length ограничивает длину записанной строки до сжатия до определенной длины.
| Листинг 9.49. Функция bzwrite_
<?php
$filename = '/tmp/test.bz2'; // открыть файл
if(!($bz = bzopen($filename, 'w')))
{
print('Нельзя открыть файл.'); exit();
}
// записать текст for($n=0; $n < 10; $n++)
{
bzwrite($bz, "Проверить строку $nn");
}
// закрыть файл bzclose($bz);
// открыть повторно в режиме чтения if(!($bz = bzopen($filename, 'r')))
{
print('Файл открыть невозможно.'); exit();
}
// распечатать все строки
while(!feof($bz))
{
print(nl2br(bzread($bz)));
}
// закрыть файл bzclose($bz);
boolean gzclose(resource file)
Функция gzclose закрывает файл, открытый с помощью функции gzopen. Значение TRUE возвращается в случае успешного закрытия файла. Значение FALSE возвращается, когда файл не может быть закрыт.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Операционная система. Часть Пятнадцатая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Операционная система. Часть Четырнадцатая. | PHP. Операционная система. Часть Шестнадцатая. |