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