Autore: Fabio Di Matteo
Ultima revisione: 21/06/2016 - 14:26
In questo articolo vedremo come creare a partire da una cartella un pacchetto compresso .zip . Di seguito la funzione che zippera' la nostra cartella ($folderSource).
function makezip($folderSource, $zipfile) { //Prende il percorso reale della cartella da zippare $rootPath = realpath($folderSource); // Inizilizzazioni $zip = new ZipArchive(); $zip->open($zipfile, ZipArchive::CREATE | ZipArchive::OVERWRITE); //Crea un iteratore ricorsivo $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($rootPath), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($files as $name => $file) { // Escude le directory(vengono aggiunte lo automaticamente) if (!$file->isDir()) { // Prende il percorso assoluto e anche relativo del file corrente $filePath = $file->getRealPath(); $relativePath = substr($filePath, strlen($rootPath) + 1); //Potrei volere escludere i file .zip dal pacchetto $path_info = pathinfo($filePath); if ($path_info['extension']!='zip') { // Aggiunge il file corrente all'archivio $zip->addFile($filePath, $relativePath); } } } // Il pacchetto zip viene scritto solo quando viene chiamato il metodo close() $zip->close(); }
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.