|
Fonction limitée niveau puissance, pas plus de 20 mo de fichiers.
require_once("zip.lib.php"); // librairie zip.lib, que l'on trouve avec phpmyadmin
$fichier_zip = "zip.zip"; // nom du fichier zip que l'on veut
$zip= new zipfile;
$path = "Compression"; // repertoire que l'on veut zipper
set_time_limit (1000); // a parametrer selon vos souhaits
function zipDir($path,&$zip)
{
if (!is_dir($path)) return;
if (!($dh = @opendir($path))) {
echo("ERREUR: Une erreur s'est produite sur ".$path." ");
return;
}
while ($file = readdir($dh)) {
if ($file == "." || $file == "..") continue; // Throw the . and .. folders
if (is_dir($path."/".$file)) { // Recursive call
zipDir($path."/".$file,$zip,$i);
} elseif (is_file($path."/".$file)) { // If this is a file then add to the zip file
$zip->addFile(file_get_contents($path."/".$file),$path."/".$file);
//echo('fichier '.$path.'/'.$file.' ajouté ');
}
}
}
}
zipDir($path,$zip);
$filezipped=$zip->file(); // On recupere le contenu du zip dans la variable $filezipped
$open = fopen($fichier_zip, "w"); // On la sauvegarde dans le meme repertoire que les fichiers a zipper
fwrite($open, $filezipped);
fclose($open);
|