Crea sito

PclZip – libreria php per zip e unzip dei file

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.

Filed Under: phpweb

Tags:

About the Author: Marzio

RSSComments (3)

Lascia un commento | Trackback URL

  1. ale ha detto:

    ciao, ho creato il tuo script php e sostituito il nome del file con il mio zip, mi dice estrazione avvenuta ma io non trovo nulla, puoi aiutarmi?. grazie.

  2. ale ha detto:

    perdonami ho ricaricato la cartella ed è presente il file dezippato, grazie mille perchè senza il tuo script non sapevo farlo funzionare pclzip….grazie

    • technotes ha detto:

      Sembra una cosa banale, ma non lo è. Lo script di esempio potrà anche essere semplice, ma la possibilità di unzippare un file senza l’accesso alla shell, o senza una apposita voce del pannello di controllo è una cosa impagabile. Io stesso la utilizzo spesso per aggiornare dati, o per caricare velocemente dati sul server.

Leave a Reply




If you want a picture to show with your comment, go get a Gravatar.