Сжатые файлы 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().