open("backup.zip", ZIPARCHIVE::CREATE) !== TRUE) { die ("Das Archiv konnte nicht erstellt werden!"); } echo "
";
// Gehe durch die Ordner und füge alles dem Archiv hinzu
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($folder));
foreach ($iterator as $key=>$value) {
if(!is_dir($key)) { // wenn es kein ordner sondern eine datei ist
// echo $key . " _ _ _ _Datei wurde übernommen";
$zip->addFile(realpath($key), $key) or die ("FEHLER: Kann Datei nicht anfuegen: $key");
$fc++;
} elseif (count(scandir($key)) <= 2) { // der ordner ist bis auf . und .. leer
// echo $key . " _ _ _ _Leerer Ordner wurde übernommen";
$zip->addEmptyDir(substr($key, -1*strlen($key),strlen($key)-1));
$dc++;
} elseif (substr($key, -2)=="/.") { // ordner .
$dc++; // nur für den bericht am ende
} elseif (substr($key, -3)=="/.."){ // ordner ..
// tue nichts
} else { // zeige andere ausgelassene Ordner (sollte eigentlich nicht vorkommen)
echo $key . "WARNUNG: Der Ordner wurde nicht ins Archiv übernommen.";
}
}
echo "";
// speichert die Zip-Datei
$zip->close();
// bericht
echo "Ordner: " . $dc . ""; echo "Dateien: " . $fc . "
"; ?>