Die Komprimierung der Netzwerkübertragungsdatei hat erhebliche Vorteile. Benutzer können nach dem Herunterladen jederzeit dekomprimieren. Kurz gesagt, Komprimierung kann die Netzwerktransfers von Dateien für Sie und Ihre Besucher erheblich vereinfachen.
können manuell komprimierende Dateien umständlich sein, aber zum Glück bietet PHP viele Erweiterungen, die sich auf die Komprimierung und Dekompression von Dateien spezialisiert haben. Sie können die Funktionen in diesen Erweiterungen verwenden, um PHP -Dateien automatisch zu komprimieren.
Dieses Tutorial führt Ihnen an, wie Sie Dateien in ZIP -Archiven in PHP- und Dekomprimieren von Dateien aus ZIP -Archiven komprimieren können. Sie lernen auch, wie Sie Dateien in Ihrem Archiv löschen oder umbenennen, ohne zuerst zu dekomprimieren.
ZipArchive::RDONLY>The PHP's
ZipArchive::RDONLY>The logo of PHP (available in PHP 7.4.3 and later) allows you to open the archive in read-only mode.
Sie können die Dokumentation für diese Methode konsultieren, um die verschiedenen Fehlercodes zu verstehen, die beim Öffnen einer Datei fehlschlagen. Wenn die ZIP -Datei erfolgreich geöffnet oder erstellt wird, gibt die Methode das Ziparchive :: Overwrite -Flag zurück, wenn der Inhalt eines vorhandenen Archivs keine Rolle spielt. Wenn ein Archiv mit diesem spezifischen Namen nicht vorhanden ist, erstellt es kein neues Archiv.
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
Verwenden Sie die Methoden Ziparchive :: Create und Open (), um ein neues oder vorhandenes Archiv zum Lesen und Schreiben zu öffnen.
In diesem Abschnitt werden wir die Unterschiede verstehen, die sich aufgrund unterschiedlicher Kombinationen von Flags ergeben können, die an $optionen übergeben werden. Wenn Sie an Ziparchive :: Create übergeben, werden ein neues Archiv erstellt oder ein vorhandenes Archiv geändert, wenn es bereits vorhanden ist. Sie erhalten keine Warnungen zur Änderung bestehender Archive. Dies bedeutet, dass Sie einige unerwartete Ergebnisse erhalten, wenn Sie den Code in diesem Abschnitt zum Erstellen des Archivs ausführen und nach dem Austausch der ursprünglichen Option durch die neue Option erneut ausführen. Das Archiv enthält dann ein -Mallyflosenverzeichnis , das die Subdirektorien Dateien/Bilder und Bilder aus dem Verzeichnis
tapapersenthält. Es kann zunächst ein wenig verwirrend sein und Sie fragen sich, warum Sie alles im Archiv überschreiben möchten (falls es bereits existiert). Wenn Sie jedoch nicht möchten, dass der Code einen Fehler wirft, wenn es nicht vorhanden ist, dann verwenden Sie Ziparchive :: create | ziparchive :: Überschreibung.
Inhalt aus Archiv ZipArchive
extractTo($destination, $entries)
$entries
Die Klasse hat eine Methode namens
Eine Sache, die Sie beachten sollten, ist, dass Sie den richtigen Pfad zur Datei im Archiv angeben müssen, um ihn zu extrahieren. Zum Beispiel haben wir im vorherigen Abschnitt eine Schriftart mit dem Namen alegreyasans-light.ttf archiviert. Diese Datei wird in einem Verzeichnis namens font_files im Archiv gespeichert. Dies bedeutet, dass der Pfad, den Sie im Parameter $entries
angeben müssen, font_files/alegreyasans-light.ttf ist, nicht nur alegreyasans-light.ttf .
Verzeichnis und Dateistruktur werden während des Extraktionsprozesses beibehalten und die Dateien werden in ihre jeweiligen Verzeichnisse extrahiert.
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
Wenn der zweite Parameter weggelassen wird, extrahiert die Methode alle Dateien im Archiv.
ZipArchive
Klasse bietet auch viele andere Methoden und Eigenschaften, mit denen Sie weitere Informationen über das Archiv erhalten, bevor Sie alles extrahieren.
Mit der Methode count()
können Sie die Anzahl der Dateien im Archiv berechnen. Eine andere Option besteht darin, das Attribut numFiles
zu verwenden. Sie können verwendet werden, um alle Dateien im Archiv zu iterieren, nur die erforderlichen Dateien zu extrahieren, oder Sie können andere Aktionen darauf ausführen, z. B. das Entfernen aus dem Archiv.
Im folgenden Beispiel löschen wir alle Dateien im Archiv, die das Wort italic enthalten. Ähnliche Codes können verwendet werden, um alle Dateien zu löschen, die keine bestimmten Wörter enthalten. Sie können diese Dateien auch itererieren und bestimmte Wörter durch andere Inhalte ersetzen.
<?php $zip = new ZipArchive(); $zip->open('compressed/user_archive.zip', ZipArchive::CREATE); $zip->extractTo('uncompressed/', 'font_files/AlegreyaSans-Light.ttf'); $zip->close(); ?>
Im obigen Code verwenden wir deleteName()
, um eine einzelne Datei zu löschen. Sie können es jedoch auch verwenden, um das gesamte Verzeichnis zu löschen.
Ähnliche Funktionen renameName($oldname, $newname)
können verwendet werden, um den Namen einer Datei im Archiv zu ändern. Wenn bereits eine Datei namens $newname
vorhanden ist, erhalten Sie eine Fehlermeldung.
Wir haben viele sehr nützliche Methoden der ZipArchive
-Klasse eingeführt, die die automatische Komprimierung und Dekompression von Dateien in PHP zum Kinderspiel machen. Sie sollten nun in der Lage sein, eine einzelne Datei oder eine Gruppe von Dateien gleichzeitig zu komprimieren, basierend auf Ihren eigenen Standards. Auch hier sollten Sie in der Lage sein, eine bestimmte Datei aus dem Archiv zu extrahieren, ohne andere Inhalte zu beeinflussen.
Mit Hilfe von count()
und numFiles
können Sie eine bessere Kontrolle über einzelne Dateien haben, und das Umbenennen oder Löschen ist sehr einfach. Sie sollten die Dokumentation mindestens einmal lesen, um mehr über solche Funktionen zu erfahren.
Das obige ist der detaillierte Inhalt vonSo ziehen Sie Dateien in PHP und entpeilt sie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!