Регистрация Войти
Войти через VK




Поиск по сайту



PHP Поиск



Сжатые файлы Bzip2

Модуль bzip2 использует библиотеку, написанную Джулианом Севардом (Julian Seward), позволяющую проводить операции файлового ввода-вывода из архивов bzip2 (.bz2). Найти ее можно по адресу: sources.redhat.com/bzip2.

Чтобы использовать функции bzip2 в PHP, надо при компиляции указать дополнительную опцию --with-bz2[=DIR]. Для этого требуется библиотека bzip2/libbzip2 версии старше, чем 1.0. Этот модуль можно также подключить динамически. Модуль разработан недавно, поэтому он может работать нестабильно. Пример использования функции приведен в листинге 4.20.

Листинг 4.20
<?php
$filename = "/tmp/testfile.bz2";
$str = "This is a test string.\n";
$bz = bzopen($filename, "w");
bzwrite($bz, $str);
bzclose($bz);
$bz = bzopen($filename, "r");
echo print bzread($bz, 10), bzread($bz);
bzclose($bz);
?>

bzcompress. Сжатие строки методом bzip2

string bzcompress (string source [, int blocksize [, int workfactor]])

Функция сжимает строку, указанную в аргументе source. В необязательном аргументе blocksize можно указать уровень сжатия от 1 до 9, где значение 9 соответствует максимальному сжатию, требующему максимума ресурсов. По умолчанию используется четвертый уровень.

Аргумент workfactor управляет сжатием данных с высокой частотностью. Возможные значения лежат в интервале от 0 до 250. По умолчанию используется значение 30.

Пример вызова этой функции приведен в листинге 4.21.

Листинг 4.21
$str = "sample data";
$bzstr = bzcompress($str, 9);
print($bzstr);

См. также bzdecompress().

bzdecompress. Распаковка строки, сжатой методом bzip2

string bzdecompress (string source [, int small])

Функция распаковывает строку source, содержимое которой ранее было сжато методом bzip2, после чего возвращает полученную строку. Если в необязательном аргументе указывается значение TRUE, то используется алгоритм, потребляющий минимальный объем памяти, но при этом функция работает значительно медленнее.

Пример вызова этой функции приведен в листинге 4.22.

Листинг 4.22
<?php
$start_str = "Это первоначальная несжатая строка";
$bzstr = bzcompress($start_str);
print( "Compressed String: $bzstr \n<br>" );
$str = bzdecompress($bzstr);
print( "Decompressed String: " . $str . "\n<br>" );
?>

См. также bzcompress().

bzopen. Открытие сжатого файла bzip2

int bzopen (string filename, string mode)

Функция возвращает дескриптор открытого файла или значение FALSE в случае возникновения ошибки. Аргумент mode принимает те же значения, что и в функции fopen(). Пример вызова этой функции приведен в листинге 4.23.

Листинг 4.23
<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$decompressed_file = bzread($bz, filesize("/tmp/foo.bz2"));
bzclose($bz);
print( "The contents of /tmp/foo.bz2 are: " );
print( "\n<br>n" );
print( $decompressed_file );
?>

См. также bzclose().

bzclose. Закрытие файла bzip2

int bzclose (int bz)

Функция закрывает файл bzip2 с дескриптором bz. В случае успеха возвращается значение TRUE. При возникновении ошибки возвращается значение FALSE.

См. также bzopen().

bzread. Чтение из файла bzip2

string bzread (int bz [, int length])

Функция читает данные из файла с дескриптором bz. Количество читаемых байтов можно указать аргументом length. Если он не указывается, то читается 1024 байта. Чтение прекращается, когда будет прочитано length распакованных байтов, или если будет обнаружен символ конца файла EOF.

Пример использования этой функции приведен в листинге 4.24.

Листинг 4.24
<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$str = bzread($bz, 2048);
print( $str );
?>

См. также bzwrite() и bzopen().

bzwrite. Запись в файл bzip2 данных

int bzwrite (int bz, string data [, int length])

В аргументе data указывается строка, содержащая записываемые данные. В аргументе bz указывается дескриптор открытого файла bzip2. Если указан аргумент length, то запись прекращается после того, как будет записано length неупакованных байт. Пример использования этой функции приведен в листинге 4.25.

Листинг 4.25
<?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

См. также bzread() и bzopen().

bzflush. Запись всего буферизированного вывода в файл bzip2

int bzflush (int bz)

В аргументе bz указывается дескриптор открытого файла. Потом в него записывается вся информация, подготовленная для вывода.

См. также bzread() и bzwrite().

bzerrno. Получение номера ошибки bzip2

int bzerrno (int bz)

В аргументе bz указывается дескриптор открытого файла, при операции с которым произошла ошибка. Возвращается код ошибки.

См. также bzerror() и bzerrstr().

bzerrstr. Получение описания ошибки bzip2

string bzerrstr (int bz)

В аргументе bz указывается дескриптор открытого файла, при операции с которым произошла ошибка. Функция возвращает описание ошибки.

См. также bzerrno() и bzerror().

bzerror. Получение номера и описания ошибки bzip2 в массиве

array bzerror (int bz)

Функция возвращает ассоциативный массив, содержащий два элемента. В одном указывается код ошибки, а в другом - описание ошибки. В аргументе bz указывается дескриптор открытого файла, при операции с которым произошла ошибка. Пример использования этой функции приведен в листинге 4.26.

Листинг 4.26
$error = bzerror($bz);
echo $error["errno"];
echo $error["errstr"];

См. также bzerrno() и bzerrstr().


.

Популярное:


Содержание:


Новое за неделю



Сейчас на сайте: 6828