PHP Zip
ZIP-Archive sind Dateien, die mit dem ZIP-Komprimierungsalgorithmus komprimiert wurden. Sie werden häufig verwendet, um die Dateigröße zu reduzieren und sie über das Internet zu übertragen oder auf der Festplatte zu speichern. Ein ZIP-Archiv kann eine oder mehrere Dateien enthalten und verfügt typischerweise über die Dateierweiterung .zip.
PHP ZipArchive-Klasse
Die veralteten zip_*-Funktionen wurden in PHP 7.4 als veraltet markiert und in PHP 8.0 entfernt. Moderne PHP-Anwendungen sollten die integrierte ZipArchive-Klasse verwenden, die eine robuste objektorientierte Schnittstelle zum Erstellen, Lesen und Extrahieren von ZIP-Archiven bietet.
Zu den wichtigsten Methoden gehören:
open()– Öffnet ein ZIP-Archiv zum Lesen oder Schreiben.extractTo()– Extrahiert alle Dateien oder bestimmte Einträge in ein angegebenes Verzeichnis.close()– Schließt den Archiv-Handle.getStatusString()– Gibt eine menschenlesbare Statusmeldung zur Fehlerbehandlung zurück.
Beispielverwendung
Das folgende Beispiel zeigt, wie ZipArchive verwendet wird, um den Inhalt einer ZIP-Datei auf die Festplatte zu extrahieren, einschließlich einer grundlegenden Fehlerbehandlung:
$zip = new ZipArchive();
$filename = 'example.zip';
$extractTo = './extracted_files';
if ($zip->open($filename) === true) {
if (!is_dir($extractTo)) {
mkdir($extractTo, 0755, true);
}
if ($zip->extractTo($extractTo) === true) {
echo "Archive extracted successfully.";
} else {
echo "Extraction failed: " . $zip->getStatusString();
}
$zip->close();
} else {
echo "Failed to open archive.";
}In diesem Beispiel instanziieren wir die ZipArchive-Klasse und versuchen, das Archiv mit open() zu öffnen. Falls dies erfolgreich ist, stellen wir sicher, dass das Zielverzeichnis existiert, und extrahieren anschließend den gesamten Inhalt mit extractTo(). Wir prüfen den Rückgabewert und verwenden getStatusString() für die Fehlermeldung, bevor wir den Handle mit close() schließen.
Fazit
In diesem Artikel haben wir besprochen, wie man mit ZIP-Archiven in modernem PHP unter Verwendung der ZipArchive-Klasse arbeitet. Wir haben erklärt, was ZIP-Archive sind, und ein praktisches Beispiel dafür geliefert, wie Dateien mit einer ordnungsgemäßen Fehlerbehandlung auf die Festplatte extrahiert werden können. Durch die Verwendung von ZipArchive in Ihren PHP-Anwendungen können Sie komprimierte Dateien zuverlässig für die Übertragung oder Speicherung verwalten.
Praxis
Welche der folgenden Aussagen über die ZIP-Erweiterung in PHP sind wahr?