Вы можете использовать класс 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. Третья строка необязательна, но некоторые (в основном старые) браузеры имеют проблемы в определенных случаях без указания размера контента.