Klasa PclZip: jak obsługiwać pliki ZIP w PHP?
Archiwizowanie plików może okazać się bardzo przydatne w naszej webowej aplikacji. Pisanie własnych mechanizmów do tego celu raczej nie ma jednak sensu – niemal na pewno będą gorsze, niż to co jest już dostępne. Przedstawiamy propozycję poradzenia sobie z archiwami dzięki pewnej przydatnej klasie.
Najprostszą metodą wykorzystania archiwizera z poziomu PHP jest oczywiście sięgnięcie po funkcję exec – zakładając, że pracujemy na stosie LAMP, można za jej pomocą spakować plik do archiwum tar następująco:
exec(tar cfvz ".$lokalizacjaPliku."/".$nazwaPliku.".tar.gz ".$doSpakowania.");
a rozpakować przez
exec(tar xvzf ".$lokalizacjaPliku."/".$nazwaPliku.".tar.gz);
Nie jest to jednak dobry pomysł z dwóch względów. Po pierwsze aplikacja webowa nie powinna mieć dostępu do warstwy systemu operacyjnego serwera. Po drugie, gdy przyjdzie nam np. udostępnić tak spakowany plik użytkownikom, większość z nich nie będzie wiedziała co z nim zrobić: dla nich synonimem archiwum jest ZIP a nie jakiś „tarball”.
Rozwiązaniem tych problemów jest klasa PclZip, stworzona przez Vincenta Blaveta z serwisu phpconcept.net. Wykorzystywana m.in. w WordPressie, jest całkiem prosta do zastosowania we własnej aplikacji. Pozwala na tworzenie archiwów ZIP, rozpakowywanie ich oraz modyfikowanie ich zawartości.
Przed którąkolwiek z tych czynności, należy utworzyć instancję obiektu, zawierającego archiwum na którym będziemy pracowali. Odbywa się to następująco:
require_once('pclzip.lib.php');
$archiwum = new PclZip('tmp/archiwum.zip');
Archiwum można następnie manipulować za pomocą publicznych metod powiązanych z obiektem PclZip. Na przykład tworzenie nieistniejącego wcześniej archiwum odbywa się za pomocą metody create(). Do rozpakowania służy metoda extract(). Każda z nich ma oczywiście swoje argumenty, opisane szczegółowo w dokumentacji. Dalej przedstawiamy najbardziej typowe zastosowania:
«poprzednia 1 2 następna »
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
22
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Anonymous upubliczniają 1,7 GB danych wykradzionych Departamentowi Sprawiedliwości USA
12
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Zostań webmasterem polskiego rządu, zarobisz na komfortowe życie dla siebie i swojej rodziny
33
Społeczność
piotrek____ @asdfgh - yup, też tak sądzę.
Tak jak wtedy ten przeciek o żołnierzu...
gonzales Javowcy pozdrawiają dotnetowców xD
kaziks Galaxy S II - u mnie po aktualizacji Firefox działa strasznie zacina się...
Doniek Szkoda że strona z demo nie działa - non stop się przeładowuje
bartez Niech zaczną jeszcze bardziej ograniczać programistów, to zdziwią się ilu...
Dave Smith Jestem Pastor Dave Smith prywatny pożyczkodawca pieniądze, z czego ponad...
marcusm Fajna reklama produktu za 500 zł
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |








