====== Creare un pacchetto zip con PHP ====== 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(); }