PHP Script til Zip-filer

Zip-formatet er et felles verktøy med en rekke bruksområder. Det kan ta en hel katalog med filer og pakke dem inn i en enkelt fil. I tillegg komprimerer den filene, sparer plass og gjør det enklere å distribuere over Internett. PHP versjoner senere enn 4 kommer med direkte støtte for å opprette, redigere og åpne zip-arkiver. Imidlertid må det støtte være aktivert for din versjon av PHP. Din vertsoperativsystemet samt din versjon bestemme hvordan du lager skript.

Krav

Hvis du bruker PHP 4, trenger du en kopi av ZZIPlib, versjon 0.10.6 eller senere. Denne gratis bibliotek vedlikeholdes av Guido Draheim. Hvis du bruker PHP 5.2.0 eller senere, trenger du en kopi av zlib vedlikeholdt av Jean-loup Gailly og Mark Adler. Alle versjoner er akseptabelt.

Installasjon

Zip-støtte er innebygd i PHP, men du må kanskje aktivere den. På Windows-maskiner, åpne "php.ini" konfigurasjonsfilen i en teksteditor og sett "php_zip.dll" som aktivert. På Linux-maskiner, sikre at "-enable-zip" innstilling ble slått på når du kompilert PHP. Du må kanskje å rekompilere PHP hvis den ikke er slått på for din installasjon.

Komprimering av filer

Følgende skript, tatt med noen modifikasjoner, fra PHP Zip bibliotek manuell, skaper en zip-fil og legger to filer til arkivet:

<? Php

$ Zip = new ZipArchive ();

$ Filename = "./test112.zip";

if ($ zip> open ($ filnavn, ZIPARCHIVE :: CREATE)! == TRUE) {

exit("cannot open &lt;$filename>\n");

}

$ Zip> AddFile ( 'filename.001');

$ Zip> AddFile ( 'filename.002');

$ Zip> close ();

?>

utpakking filer

Følgende skript, tatt fra PHP Zip bibliotek manuell, unzips en zip-fil og sender innholdet til standard ut.

<? Php

$ Zip = zip_open ( "/ tmp / test2.zip");

if ($ zip) {

while ($zip_entry = zip_read($zip)) {

echo "Navn:". zip_entry_name ($ zip_entry). "\ N";

echo "Faktisk Filstørrelse:". zip_entry_filesize ($ zip_entry). "\ N";

echo "Komprimert størrelse:". zip_entry_compressedsize ($ zip_entry). "\ N";

echo "Komprimeringsmetode:". zip_entry_compressionmethod ($ zip_entry). "\ N";

if (zip_entry_open ($ zip, $ zip_entry, "r")) {

echo "Fil Innhold: \ n";

$ Buf = zip_entry_read ($ zip_entry, zip_entry_filesize ($ zip_entry));

echo "$ buf \ n";

zip_entry_close ($ zip_entry);

}

echo "\ n";

}

zip_close ($ zip);

}

?>