Codice PHP:
<?php
require_once("zip.inc.php");
$zipfile = new zipfile();
$dir = "directory/"; //directory da zippare
$file = "archive.zip"; //nome dell'archivio
zippa($dir);
$f = fopen($file, "w");
fwrite($f, $zipfile->file());
fclose($f);
echo "Cartella archiviata in $file";
function zippa($directory) {
global $zipfile;
$zipfile->add_dir($directory);
foreach(glob($directory."*") as $filename) {
if(is_file($filename))
$zipfile->add_file(implode("", file($filename)), $filename);
elseif(is_dir($filename))
zippa($filename."/");
}
}
?>
Il file zip.inc.php lo copi da qui. (Ho usato questa classe perchè è più semplice, poi dai test che ho fatto in locale non so perchè ma la classe ziparchive del php a volte creava archivi danneggiati )