Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Archivio Posts
Anno 2014

Anno 2013

Anno 2012
Statistiche
  • Views Home Page: 61.086
  • Views Posts: 471.680
  • Views Gallerie: 0
  • n° Posts: 210
  • n° Commenti: 224

PHP - CREARE / ESTRARRE ARCHIVI ZIP USANDO LA LIBRERIA PclZIP

Creare/Estrarre archivi zip usando la libreria PclZip in PHP

Introduzione

Oggi vi parlo della fantastica libreria Open Source Download PclZip che vi permette di decomprimere (e non solo) i file zip attraverso php, per fare ciò per prima cosa scaricate PclZip dal sito e caricate il file 'pclzip.lib.php' sull’ftp.

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.

Come creare un file '.zip' che contenga i file di una cartella del nostro server usando PclZip


Creiamo un file 'compressione_cartella.php' e copiamo il seguente codice :

<?php 
 
// Crea file .zip di una cartella specifica 
 
$path="sito_web/"; //percorso della cartella server (Indicare il percorso della cartella che contiene i file da comprimere) 
$filename = "beckup.zip"; //nome del file .zip archivio 
 
$x=0; 
if ($handle = opendir($path)) { 
    while (false !== ($arrayfile = readdir($handle))) { 
        if( $arrayfile != '.' and $arrayfile != '..'){ 
                $array_all_file[$x]=$path.$arrayfile; //elenco dei file e cartelle 
                $x++; 
        } 
    } 
    closedir($handle); 
}  
 
//richiamo fondamentale della libreria PclZip 
require_once('pclzip.lib.php'); 
 
$archive = new PclZip($filename);  
 
//Una lista di nomi di files da comprimere  
$listOfFilesToCompress=implode(",",$array_all_file);  
 
//Aggiungo i files all'archivio  
$v_list = $archive->create($listOfFilesToCompress);  
if ($v_list == 0) {  
die("Error : ".$archive->errorInfo(true));  
} 
 
 echo "Archivio \"beckup.zip\" creato con successo."; 
 
?>
Se volete comprimere solo alcuni specifici file o specifiche cartelle (Ex: Cartella, file.php, file.html ) questi file e cartelle si trovano nella stessa cartella dove si trova la pagina PHP che contiene il seguente codice :

<?php 
 
//richiamo fondamentale della libreria PclZip 
require_once
('pclzip.lib.php'); 
 
  $file_zip
= new PclZip('beckup.zip'); 
  $v_list
= $file_zip->create('cartella, file.php, file.html'); 
 
if ($v_list == 0) { 
   
die("Errore : ".$archive->errorInfo(true)); 
 
} 
  echo
"Archivio \"beckup.zip\" creato con successo."; 
?>


Estrarre file zip con php usando PclZip

Vi è mai capitato di dover effettuare l'upload di numerosi files? Magari per installare nel vostro sito un CMS. Vi sarete sicuramente accorti che i tempi di upload sono lunghissimi.

Per ridurre i tempi basterebbe caricare l'archivio zip sul server e poi estrarlo.

Per estrarre l’archivio desiderato, bastano poche righe di codice, potete usare questo semplice esempio:

<?php 
 
//decomprimere il file zip 
 
//richiamo fondamentale della libreria PclZip 
require_once
('pclzip.lib.php'); 
 
$filename
="beckup.zip";//inserire il percorso e il nome esatto del file .zip  
$archive
= new PclZip($filename);  
if ($archive->extract() == 0) { 
   
die("Errore: ".$archive->errorInfo(true));   
} 
 
echo
"Estratti i file con successo"; 
?>


Ricordatevi di cambiare 'beckup.zip' con il nome del file da voi postato sul vostro server.

Estrarre i file in una cartella ben precisa

Se si vuole estrapolare i file e salvarli in una cartella ben precisa esempio 'newdir' devo cambiare la riga :

Cerca "$archive->extract()" :

if ($archive->extract() == 0) {
e modificalo con "$archive->extract(PCLZIP_OPT_PATH, 'newdir/')" (newdir è il nome della cartella da creare e dove verranno messi i file ) :

if ($archive->extract(PCLZIP_OPT_PATH, 'newdir/') == 0)  //newdir è il nome della cartella da creare e dove verranno messi i file scompattati/estratti

Tutto il codice
<?php 
//decomprimere il file zip 
 
//richiamo fondamentale della libreria PclZip 
require_once('pclzip.lib.php'); 
 
$filename="beckup.zip";//inserire il percorso e il nome esatto del file .zip  
$archive = new PclZip($filename);  
if ($archive->extract(PCLZIP_OPT_PATH, 'newdir/') == 0) { 
    die("Errore: ".$archive->errorInfo(true));   
} 
 
echo "Estratti i file con sucesso"; 
?>


Per aiutarvi o per i pigri vi allego il file demo cosi lo potete modificare a vostro piacimento.

Queste funzioni le potete usare per creare Beckup del vostro sito Creando un Archivio Zippato dell'intero sito web.

Potete scaricare il file d'esempio :

Password :  "ImaginSystem" 

By ImaginSystems & Queen Gin   

Categoria: PHP
mercoledì, 02 mag 2012 Ore. 14.20
Ora e Data
Mappa
Blogs Amici
    Copyright © 2002-2007 - Blogs 2.0
    dotNetHell.it | Home Page Blogs
    ASP.NET 2.0 Windows 2003