hallo
bei neueren php-Versionen gibt es die Klasse "ZipArchive" allerdings kann die nicht von Haus aus ganze Ordner zippen.
Desshalb habe ich da mal die Klasse erweitert:
class superZipArchive extends ZipArchive {
public function open($filename, $flags = null){
$this->qgFilename = $filename;
return parent::open($filename, $flags);
}
public function addDir($dir, $localname = null, $regexpExclude = null){
if($localname === null){ $localname = basename($dir); }
$iter = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $dir ), true );
$i = 0;
foreach ( $iter as $file ){
if($regexpExclude AND preg_match($regexpExclude, $file)){ continue; }
if(++$i > 50){ // **
$i = 0;
$this->close();
$this->open( $this->qgFilename, ZipArchive::CREATE );
}
$path = $localname.substr($file,strlen($dir));
$this->addFile( $file, $path );
}
}
}
** allerdings hat die Klasse Probleme mit vielen Dateien, desshalb baue ich einen Zähler ein um immer nach 50 Dateien das Zip zu schliessen und wieder neue zu eröffnen.