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