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:
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
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 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 ); }