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:
Ładowanie




