В настоящее время я использую zipArchive в простом скрипте PHP для динамической группировки файлов перед загрузкой. Мой сценарий основан на этом очень простом коде.
$zip = new zipArchive();
if ($zip->open($destinationFile, ZIPARCHIVE::CREATE) !== true)
die('Error...');
foreach($documents as $docName => $docURI)
$zip->addFile($docURI, $docName);
Код работает нормально. Моя проблема больше связана с использованием ресурсов, и особенно с дис c IO. Веб-сайт размещен на общих серверах, поэтому у меня очень ограниченные возможности.
Когда скрипт работает, он использует полную квоту ввода-вывода (1,5 МБ / с). В результате мой сайт работает медленно. Иногда нам требуется более 10 секунд, чтобы загрузить очень маленькую страницу ...
Я бы хотел ограничить использование скрипта диском, чтобы веб-сайт работал и был достаточно отзывчивым.
Если я ' Я могу добавить в архив множество очень маленьких файлов. Я могу просто добавить сон в l oop. Тем не менее, это не решение, когда я должен добавить файлы большего размера.
Мне не удалось найти способ заставить его работать медленнее. Я не знаю их, но потоки могут помочь мне, обрабатывая большие файлы в отдельных частях. Однако потоки доступны только для чтения в zipArchive. Потоков также было здорово уменьшить использование памяти.
Я думаю, что это не обычный запрос ...