<?php // increase script timeout value ini_set("max_execution_time", 300); // create object $zip = new ZipArchive(); // open archive if ($zip->open("folder_backup.zip", ZIPARCHIVE::CREATE) !== TRUE) { die ("Could not open archive"); } // initialize an iterator // pass it the directory to be processed $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("./")); // iterate over the directory // add each file found to the archive foreach ($iterator as $key=>$value) { if($key != "./.." || $key != "./.") { $zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key"); } } // close and save archive echo "--- SAUVEGARDE DU DOSSIER ---<br/>Nombre de fichiers : " . $zip->numFiles . "<br/>"; echo "Statut : " . $zip->status . "<br/>"; $msg = $zip->close(); echo "Archive created successfully. Zip close : ".$msg; ?>
Ce code fonctionne bien, mais il créé des fichiers vides _ et __ dans chaque dossier à cause des emplacements “./.” et “./..”. Il faudrait trouver une solution et ce serait niquel.