<?php
/**
* @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;
}
?>
IX. Kompresja Bzip2
Wstęp
Funkcje bzip2 są używane do przezroczystego odczytu i zapisu skompresowanych plików bzip2 (.bz2).
Wymagania
Ten moduł używa funkcji z biblioteki bzip2 stworzonej przez Juliana Seward'a. Moduł wymaga bzip2/libbzip2 w wersji >= 1.0.x.
Instalacja
Obsługa kompresji bzip2 nie jest domyślnie włączona w PHP. Aby ją aktywować, należy użyć opcji --with-bz2=[DIR] podczas kompilacji PHP z kodu źródłowego.
Konfiguracja czasu wykonywania
To rozszerzenie nie definiuje posiada żadnych dyrektyw konfiguracyjnych w pliku php.ini.
Typy zasobów
Rozszeżenie to definiuje jeden typ zasobów: wskaźnik pliku identyfikujący plik bz2 na którym pracuje.
Stałe predefinopwane
To rozszerzenie nie posiada żadnych stałych.
Przykłady
Ten przykład otwiera tymczasowy plik i zapisuje w nim testowy łańcuch znaków, po czym wyświetla zawartość pliku.
- Spis treści
- bzclose -- Zamyka otwarty plik bzip2
- bzcompress -- Compress a string into bzip2 encoded data
- bzdecompress -- Decompresses bzip2 encoded data
- bzerrno -- Zwraca numer błędu biblioteki bzip2.
- bzerror -- Zwraca numer błędu bzip2 oraz opis błędu w postaci tablicy.
- bzerrstr -- Zwraca opis błędu bzip2
- bzflush -- Wymusza zapisanie do pliku wszystkich danych z bufora
- bzopen -- Otwiera skompresowany plik bzip2
- bzread -- Binarnie bezpieczny odczyt pliku bzip2
- bzwrite -- Binarnie bezpieczny zapis plików bzip2
