Zip-Archiv von einem Ordner mit PHP erstellen und entpacken
Das Beispiel zeigt wie einfach man mit Hilfe des RecursiveDirectoryIterator und ZipArchiv ein Backup von einem Ordner erstellt und wieder entpackt.
<?php
$sourcePath = realpath('../../');
$archiv = new ZipArchive();
$archiv->open('archiv.zip', ZipArchive::CREATE);
$dirIter = new RecursiveDirectoryIterator($sourcePath);
$iter = new RecursiveIteratorIterator($dirIter);
foreach($iter as $element) {
/* @var $element SplFileInfo */
$dir = str_replace($sourcePath, '', $element->getPath()) . '/';
if ($element->isDir()) {
// Ordner erstellen (damit werden auch leere Ordner hinzugefügt
$archiv->addEmptyDir($dir);
} elseif ($element->isFile()) {
$file = $element->getPath() .
'/' . $element->getFilename();
$fileInArchiv = $dir . $element->getFilename();
// Datei dem Archiv hinzufügen
$archiv->addFile($file, $fileInArchiv);
}
}
// Einen Kommentar mitspeichern
$archiv->setArchiveComment('Backup von ' . $sourcePath);
$archiv->close();
// Und zum entpacken:
$destinationPath = realpath('tmp/');
$archiv = new ZipArchive();
$archiv->open('archiv.zip');
// In Ordner entpacken
$archiv->extractTo($destinationPath);
Trackbacks (0)
Trackbackurl: http://www.robo47.net/trackback/snippet/9Es sind keine Trackbacks vorhanden.
You liked it ? Link it on your homepage or blog:



Benjamin Steininger ist Webentwickler auf der Suche nach einem neuen Job und
photographiert sehr gerne. Er beschäftigt sich viel mit dem Internet, PHP, Symfony, Testing und hat einen
Kommentare (2)
hi
da ich gerade vor dem selben Probleme stehe und deinen Code "studiere" ist mir ein "kleiner Fehler" aufgefallen:
1. das kommentar kommentar hat einen klitzekleinen fehler
2.
es gibt keine $absolutePath Variable
thx, fixed
Die Kommentare zu diesem Beitrag sind gesperrt.