seit PHP 5 ist es sehr einfach .zip Dateien zu erstellen und wieder zu entpacken mit der eigenen Klasse ZipArchive
Damit der Code einfacher zu lesen ist habe ich Ihn nicht zerstückelt sondern einfach Kommentare verwendet
Hier die wichtigsten Methoden:
Vorgang um Datei(en) und oder Ordner zu archivieren währe dann z.B. wie folgt:
Alles anzeigen
Der Vorgang zum entpacken sieht dann so aus:
Damit der Code einfacher zu lesen ist habe ich Ihn nicht zerstückelt sondern einfach Kommentare verwendet
Hier die wichtigsten Methoden:
Quellcode
- addEmptyDir() // Fügt einen leeren Ordner hinzu
- addFile() // Fügt eine Datei hinzu
- addFromString() // Fügt einen Datei aus Text hinzu
- close() // Schließt eine offene Zip-Datei
- extractTo() // Entpackt ein Archiv an eine bestimmte Position
- open() // Öffnet eine Zip-Datei, bzw legt eine neue Zip-Datei an
Vorgang um Datei(en) und oder Ordner zu archivieren währe dann z.B. wie folgt:
Quellcode
- $path = realpath('data/files'); // Pfad+ Order/Datei der/die gepackt werden soll
- $archiv_zip = 'datei.zip';// Name des .zip Archiv (erstellen automatisch)
- $archiv = new ZipArchive();
- $archiv->open($archiv_zip, ZipArchive::CREATE); //Öffnet das Archiv, der Modus CREATE erstellt dabei ein neues Archiv es gibt sonst noch OVERWRITE, EXCL, CHECKCONS
- $diriter = new RecursiveDirectoryIterator($path); //RecursiveDirectoryIterator bietet eine Schnittstelle zur Iteration rekursiv über Dateisystem Verzeichnisse.
- $Iterator = new RecursiveIteratorIterator($diriter); //rekursive Iteratoren durchlaufen
- foreach($Iterator as $element) {
- $dir = str_replace($path, '', $element->getPath()) . '/';
- if($element->isDir()){// falls ein Ordner archiviert werden soll
- $archiv->addEmptyDir($dir);// Ordner erstellen
- } elseif ($element->isFile()) {// falls eine Datei archiviert werden soll
- $file = $element->getPath().'/'.$element->getFilename();
- $fileInArchiv = $dir. element->getFilename();
- $archiv->addFile($file, $fileInArchiv);// Datei zum Archiv hinzufügen
- }
- }
- $archiv->setArchiveComment('Backup von ' . $path);// Kommentar für die .zip
- $archiv->close();
Der Vorgang zum entpacken sieht dann so aus:
11.678 mal gelesen