Информационные технологииStfw.Ru 🔍

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

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

Чтобы использовать функции bzip2 в РНР, надо при компиляции указать параметр -with-bz2[=DIR] (для этого требуется библиотека bzip2/ Iibbzip2 версии не ранее 1.0.x). Этот модуль можно также подключить динамически. Так как модуль добавлен недавно, он может работать нестабильно.

<?php
Sfilename = "/tmp/testfile.bz2";
$str = "This is a test string.\n":
$bz = bzopen($filename. "w");
bzwrite($bz. $str),
bzclose($bz).
Ibz = 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 - максимальное сжатие, требующее максимума ресурсов), по умолчанию он равен 4.

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

$str = "sample data" :
$bzstr = bzcompress($str. 9);
pnnt( $bzstr ):

См. также: bzdeconpress().

bzdecompress

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

string bzdecompress (string source [. int small])

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

<?php
$start_str = "Это первоначальная
несжатая строка":
Jbzstr -= bzcompress($start_str'>;
print( 'Compressed
String: Sbzstr \n<br>" ):
$str = Dzdecompress($bzstr);
print( "Decompressed
St1" rig. ' $str . "\n<br>" ): ?>

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

bzopen

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

int bzopen (string filename, string mode)

Возвращает дескриптор открытого файла или FALSE в случае ошибки. Аргумент mode может быть таким же, как в функции fopen() ("r" для чтения, "w" для записи и т. д.).

<?php
$bz = bzopenf"/trap/too.bz2", "r"):
$decompressea_file = bzread($oz.
fiIesize("/tmp/foo.bz2")):
bzclose($bz):
print( "The contents of
/tmp/foo.Dz2 are: " ):
print( "\n<br>n" ):
print( $decompressed_file ). ?>

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

bzclose

Закрытие файла bzip2 int bzclose (int bz)

Закрывает файл bzip2, дескриптор которого bz должен был быть ранее успешно возвращен функцией bzopen(). Возвращает TRUE или FALSE - при ошибке.

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

bzread

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

string bzread (int bz [, int length])

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

<?php
$bz = bzopen("/tmp/foo.bz2". "г"):
$str
bzread($bz. 2048), printt $str ):?>

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

bzwrite

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

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

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

<?php
$str = "uncompressed data".
$bz - bzopenCYtmp/foo.bzZ", V).
bzwnte($bz. $str. strlpn($str)).
bzclose($bz); ?>

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

bzflush

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

int bzflush (int bz)

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

Возвращается TRUE или FALSE - при ошибке.

См. также: 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 указывается дескриптор открытого файла, при операции с которым произошла ошибка.

Serror = bzerror($t>z):
echo $error["errno"]:
echo Sen or["errbtr"].

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

Учебник по основам PHP   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉