====== ZIP-Archiv mit PHP erstellen ====== ===== Libzip ===== Wenn bei Ihrer PHP-Version Libzip aktiviert ist können Sie direkt mit PHP ZIP-Archive erstellen. Dies können Sie durch den Aufruf der Funktkion phpinfo() herausfinden: {{:php:php:libzip.gif?direct|}} private function createZipFile( $origFilename ) { $zip = new ZipArchive(); $zip->open( 'dateiname.zip', ZipARCHIVE::CREATE ); $zip->addFile( $origFilename ); $zip->close(); unlink( $origFilename ); // Original-Datei wieder entfernen } Sollte Lipzip bei Ihnen nicht aktiv sein ist der Einsatz der nachfolgend beschriebenden PHP-Klasse ZIPlib möglich ---- ===== ZIPlib ===== Mit der PHP-Libary "ZIPlib" von Pascal Rehfeldt ist möglich in PHP ohne großen Aufwand ein ZIP-Archiv mit beliebig vielen Dateien zu erstellen. Hierfür stellt die PHP-Klasse "zipfile" folgende Methoden zur Verfügung: ^ Methode ^ Beschreibung ^ | addFile | Erstellt aus Binär-Daten (z. B. BLOB aus mySQL) eine Datei und fügt sie dem ZIP-Archiv hinzu | | addFileAndRead | liesst eine bestehende Datei ein und fügt sie dem ZIP-Archiv hinzu | |addDirContent | fügt alle Dateien eines Verzeichnisses dem ZIP-Archiv hinzu | | addFileAsPDF | erstellt aus einer Text-Datei eine PDF-Datei und fügt sie dem ZIP-Archiv hinzu | | file | erstellt das ZIP-Archiv und gibt es zurück | Dokumentation des Autors: http://valentin.dasdeck.com/php/sfx/files/readme.txt ---- ===== gzip ===== Gzip ist ein freies, plattformunabhängiges Kompressionsformat. /** * @param string $filename */ private function createGzipFile( &$filename ) { $csvContent = file_get_contents( $filename ); // Datei-Inhalt in eine Variable speichern unlink( $filename ); // Original-Datei entfernen $filename = $filename . '.gz'; $fp = gzopen( $filename, 'w9' ); gzwrite( $fp, $csvContent ); gzclose( $fp ); }