Die Archive-Komponente ermöglicht den komfortablen Umgang mit verschiedenen Archive- und Komprimierungsverfahren. In diesem Kapitel werden die Bildfunktionen des letzten Kapitels um die Möglichkeit erweitert, ganze Archive von Bildern hochzuladen.
13 Archive und Dateien
Der gleichzeitige Umgang mit vielen Dateien in Webapplikationen gestaltet sich häufig umständlich, da einerseits aus Sicherheitsgründen kein XMLHttpRequest zum parallelen Hochladen mehrerer Dateien im Hintergrund verwendet werden kann, und auf der anderen Seite viele einzelne File-Upload-Felder schlecht durch Besucher zu bedienen sind.
Mit der Möglichkeit, verschiedene Archiv-Formate zu lesen und zu erstellen, kann dieser Prozess für den Benutzer der Applikation deutlich erleichtert werden, da beispielsweise ZIP-Archive verwendet werden können, um viele Dateien gleichzeitig hoch- oder herunterzuladen, und entsprechende Archiv-Programme bei jedem aktuellen Betriebssystem zum Standard-Softwareumfang gehören.
Neben einfachen Dateioperationen, die von PHP für alle verfügbaren Betriebssysteme ausreichend abstrahiert werden, sind auch im Umgang mit mehreren lokalen Dateien ausserhalb von Archiven zusätzliche Methoden zum einfacheren Zugriff, wie das rekursive Suchen und Löschen, gefragt.
13.1 Die Archive-Komponente 

Die Archive-Komponente kann verschiedenste übliche Archiv-Formate lesen und schreiben. Beim Schreiben von Archiven können nicht nur neue erstellt werden, sondern auch Dateien an beliebiger Stelle in existierenden Archiven eingehängt werden.
Von der Archive-Komponente werden ZIP-Archive sowie verschiedene TAR-Varianten unterstützt. Über die PHP-Stream-Wrapper können auch komprimierte TAR-Archive gelesen, nicht jedoch geschrieben werden.
| Stream-Wrapper |
|
Stream-Wrapper sind ein Mechanismus, mit dem PHP den Zugriff auf verschiedene Protokolle wie HTTP, FTP und Kompressionsmechanismen wie GZIP und BZIP2 abstrahiert. Bei dem Zugriff auf Ressourcen, die ein Protokoll-Schema zu Beginn der URI definiert haben, wird der entsprechende Stream-Wrapper verwendet. |
|
Zusätzlich zum definierten Schema können Streams noch Kontext-Informationen und Filter assoziiert werden. Dadurch kann beispielsweise definiert werden, ob eine aktive oder passive FTP-Verbindung aufgebaut werden soll. |
|
Nicht jeder Stream-Wrapper unterstützt alle möglichen Funktionen. Eine Übersicht findet sich im PHP-Handbuch.2 Zusätzlich können eigene Stream-Wrapper definiert werden. Die Archive-Komponente verwendet die Stream-Wrapper, um ohne explizite (De-)Komprimierung auf Archive zuzugreifen, die mit bzip2 oder gzip komprimiert sind. |




Ihre Meinung






