От preg_replace документация на php.net:
замена может содержать ссылки формы \n или (начиная с PHP 4.0.4) $n с последней формой, являющейся предпочтительной. Каждая такая ссылка будет заменена текстом, полученным заключенным в скобки шаблоном n'th.
Посмотрите пример Flubba.
Вы можете использовать класс ZipArchive
, чтобы создать ZIP-файл и передать его клиенту. Что-то вроде:
$files = array('readme.txt', 'test.html', 'image.gif');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
и для его потоковой передачи:
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
Вторая строка заставляет браузер отображать окно загрузки пользователю и запрашивает имя filename.zip. Третья строка является необязательной, но в некоторых (в основном старых) браузерах в некоторых случаях возникают проблемы без указания размера содержимого.
Создайте zip-файл, затем загрузите файл, установив заголовок, прочтите содержимое zip-архива и выведите файл.
http://www.php.net/manual/en /function.ziparchive-addfile.php