getPathname(), strlen($src) + 1)); $files[$rel] = $f->getPathname(); } ksort($files); $zip = new ZipArchive(); if ($zip->open($out, ZipArchive::CREATE) !== true) { fwrite(STDERR, "ZIP lässt sich nicht anlegen.\n"); exit(1); } foreach ($files as $rel => $path) { $zip->addFile($path, 'deskhub-tickets/' . $rel); // immer mit /, im Ordner deskhub-tickets (WordPress verlangt das) } $zip->close(); echo count($files) . " Dateien -> $out (" . filesize($out) . " Bytes)\n";