Odczyt i zapis skompresowanych plików bzip2
Odczyt i zapis skompresowanych plików bzip2

Na początek musimy utworzyć plik write.php, który będzie zapisywał tekst do skompresowanego pliku.

Kod źródłowy pliku zapisującego:
<?php  
//USTAWIENIA  

//Nazwa naszego pliku (pamietaj, aby nadac mu chmod 666)  
$nazwa "test.bz2";  
$str "To jest testowy lancuch znaków.\n";  

//KONIEC USTAWIEN  


//Otwarcie pliku do zapisu  
$bz bzopen($nazwa"w");  

// zapisz testowy lancuch znaków  
bzwrite($bz$strstrlen($str));  

// zamknij plik  
bzclose($bz);  
?>


Dla funkcji bzopen w atrybucie nr. 2 zamiast "w" przy zapisie możemy podać "a" wtedy podany tekst jest dopisywany, wcześniejsze dane w pliku nie zostają skasowane!

Następnie tworzymy read.php, który będzie wczytywać zawartość naszego pliku test.bz2.

Kod źródłowy pliku odczytującego:
<?php  
//USTAWIENIA  

//Nazwa naszego pliku (pamiętaj, aby nadać mu chmod 666)  
$nazwa "test.bz2";  

//Ilość znaków do wczytania, jeżeli chcesz wczytać większe ilości znaków przy zapisie
//musisz dodatkowo zapisać ile znaków ma skompresowany do bz2 tekst za pomocą dodatkowego
//pliku tekstowego lub bazy danych np. mysql, jeżeli chcesz wczytywać mniej więcej
//określone ilości podaj niżej jej wartość np. 1024 znaków  
$wczytaj 16922;  

//KONIEC USTAWIEŃ  


//Otwarcie pliku do odczytu  
$bz bzopen($nazwa"r");  

//Wyświetla 10 znaków od początku pliku (jeśli chcesz wyświetlić określoną liczbe znaków  
print bzread($bz10);  

//Dzielimy wcześniej zapisany rozmiar tekstu przez 1024 iż funkcja bzread domyślnie wczytuje
//właśnie 1024 znaki, a to oznacza że musimy funkcje umieścić w pętli (mozna byloby w funkcji
//podać parametr drugi, który ustala ile znaków wczytać np. bzread($bz, 16922) i nasza funkcja
//wczyta za jednym zamachem 16922 znaków, jednak ten parametr ma ograniczenia, więc lepiej zastosować pętle.  
$wczytaj $wczytaj 1024;  

//Wyświetla wszystko do końca pliku (lub następne 1024 znaki)  
for ($i 0$i <= $wczytaj$i++)  
{  
    
//Wczytanie danych z pliku  
    
echo bzread($bz);  
}  

//Zamyka plik  
bzclose($bz);  
?>
 

Więcej informacji:
http://pl2.php.net/manual/pl/ref.bzip2.php



WebServ 2.1 (Apache/2.2.22 (Win32) PHP/5.3.20 MySQL 5.5.21)


http://www.webserv.pl - Oficjalna strona programu
http://forum.webserv.pl - Pomoc techniczna