PclZip – libreria php per zip e unzip dei file
By marzio on lug 07, 2010 with Commenti 0
Spesso chi gestisce un sito web può avere la necessità di creare o scompattare degli archivi di file. I motivi possono essere diversi, si può utilizzare un archivio compresso per velocizzare i tempi di upload, o si può creare un archivio come backup di certe parti del sito.
La cosa più semplice è uno shell script che faccia quanto richiesto. Purtroppo non tutti i provider consentono un accesso alla shell, alcuni non lo permettono nemmeno tramite le chiamate php. In questo caso, se abbiamo bisogno di compattare e scompattare dei file, possiamo utilizzare delle librerie php create per questa funzione.
Una libreria ottima per questo utilizzo è PclZip scaricabile da qui: http://www.phpconcept.net/pclzip
Come recita la descrizione, PclZip è una libreria che crea e gestisce gli archivi in formato zip. E' molto semplice da usare, in quanto l'intera libreria è contenuta in un unico file chiamato pclzip.lib.php, per cui è sufficiente copiare il file sul proprio sito, e includerlo nel proprio script con il comando:
require_once("pclzip.lib.php");
A questo punto avremo disponibile una classe chiamata PclZip, dotata dei seguenti metodi:
| PclZip::PclZip() : | Creazione della classe |
| PclZip::create() : | Crea il file ZIP e aggiunge files o directory |
| PclZip::listContent() : | List del contenuto di un archivio |
| PclZip::extract() : | Estrae tutto o parte di un archivio |
| PclZip::properties() : | Get delle proprietà di un archivio |
| PclZip::add() : | Aggiunge files o directory in un archivio |
| PclZip::delete() : | Cancella file all'interno di un archivio |
| PclZip::merge() : | Aggiunge il contenuto di un archivio ad un secondo archivio |
| PclZip::duplicate() : | Duplica un archivio |
La descrizione della sintassi di utilizzo dei singoli metodi si trova nella user guide presente qui:
http://www.phpconcept.net/pclzip/user-guide
Un piccolo esempio di utilizzo per scompattare un file zip (senza tener conto di eventuali messaggi di errore) è il seguente:
<? require_once("pclzip.lib.php"); $temp_file="archivio.zip"; $archive = new PclZip($temp_file); if (($v_result_list = $archive->extract()) == 0) { die("Error : ".$archive->errorInfo(true)); } echo "estrazione avvenuta"; ?>
Risulta evidente di come potremo creare o scompattare archivi in formato ZIP, con poche semplici righe in php.
About the Author: Marzio