IX. Функции сжатия Bzip2

Введение

Расширение используется для чтения, записи файлов (.bz2), с использованияем метода сжатия bzip2.

Требования

Расширение использует функции библиотеки bzip2 (автор: Julian Seward) и требует bzip2/libbzip2 версий >= 1.0.x.

Установка

Поддержка Bzip2 в PHP не включена по умолчанию. Вам придётся скомпилировать PHP с указанием директивы --with-bz2[=DIR].

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Расширение определяет один новый тип ресурсов: указатель на bz2-файл, с которым идёт работа.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Следующий пример откроет временный файл, запишет в нему тестовую строку, после чего выдаст содержание файла.

Пример 1. Пример работы с bzip2

<?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");

// читаем и выводим 10 символов
print bzread($bz, 10);

// выводим всё, до конца файла и закрываем его.
print bzread($bz);

bzclose($bz);

?>
Содержание
bzclose -- Закрывает файл bzip2
bzcompress -- Сжимает данные с использованием bzip2
bzdecompress -- Распаковывает данные, сжатые с использованием bzip2
bzerrno -- Возвращает код ошибки работы с bzip2
bzerror -- Возвращает код и строку ошибки работы с bzip2
bzerrstr -- Возвращает строку ошибки работы с bzip2
bzflush -- Вызывает запись всех буфферизированных данных
bzopen -- Открывает для работы файл, сжатый с использованием bzip2
bzread -- Бинарно-безопасное чтение файла bzip2
bzwrite -- Бинарно-безопасная запись bzip2 файла


Функции сжатия Bzip2
ec10 at gmx dot net
20-May-2004 11:34
/**
 * @return bool
 * @param string $in
 * @param string $out
 * @desc compressing the file with the bzip2-extension
*/
function bzip2 ($in, $out)
{
   if (!file_exists ($in) || !is_readable ($in))
       return false;
   if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) ))
       return false;
  
   $in_file = fopen ($in, "rb");
   $out_file = bzopen ($out, "wb");
  
   while (!feof ($in_file)) {
       $buffer = fgets ($in_file, 4096);
         bzwrite ($out_file, $buffer, 4096);
   }

   fclose ($in_file);
   bzclose ($out_file);
  
   return true;
}

/**
 * @return bool
 * @param string $in
 * @param string $out
 * @desc uncompressing the file with the bzip2-extension
*/
function bunzip2 ($in, $out)
{
   if (!file_exists ($in) || !is_readable ($in))
       return false;
   if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) ))
       return false;

   $in_file = bzopen ($in, "rb");
   $out_file = fopen ($out, "wb");

   while ($buffer = bzread ($in_file, 4096)) {
       fwrite ($out_file, $buffer, 4096);
   }
 
   bzclose ($in_file);
   fclose ($out_file);
  
   return true;
}

<bcompiler_write_headerbzclose>
 Last updated: Tue, 15 Nov 2005