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 »
Polecamy
Reklama
Popularne
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Źle się dzieje z Chrome, ze stabilnością coraz gorzej. Gdzie się podziała słynna izolacja procesów?
26
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
Zaktualizuj PHP do wersji 5.4, zyskasz za darmo nawet o kilkudziesiąt procent wyższą wydajność aplikacji
6
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
pankracy ale dla piratów to i tak chyba niewiele wnosi ponieważ ściągając...
elodi dziwaczny melanż prawa rzymskiego, brytyjskiego Common Law i systemu...
krm a mógł otworzyć europejska siedzibę w Polsce, tu z pewnością byłby...
chrisgl "Streaming data from Blender into Three.js (WebGL+Websockets)"
Jest kilka...
skurg "skurg jeżeli będą zaszyfrowane to czemu nie ??"
A skąd wiesz że są...
Marek Polski Tak samo jak można powierzać komukolwiek pocztę elektroniczną, pieniądze...
adaks skurg jeżeli będą zaszyfrowane to czemu nie ??
- 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)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
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ł |








