Я написал функцию ajax для вызова скрипта, который создает zip-архив из 500 файлов.Есть цикл для добавления файлов в архив.Этот цикл содержит файловый счетчик.Теперь я хочу обновлять статус в браузере каждые 50 файлов.Но php-скрипт отправит весь вывод, когда скрипт завершится и zip-файл будет завершен.
Принцип очень похож на следующий пост: Вывод 'string' во время каждой итерации длинного цикла (flush() не работает)
(за исключением того, что решение не работает на моем сервере)
Я нашел много возможных решений, но ничего не работает ...
Я попробовал это с помощью метода flush / ob_flush (также ob_implicit_flush), но сбросить содержимое у меня не работает.Я немного поиграл с настройкой сервера, но это не помогло.Также все примеры не сработали.Возможно, проблема с сервером.
Я попробовал SSE, но следующий ответ завершился успешно и после завершения сценария.
Я попытался использовать WebSocket, но у меня были некоторые проблемы с рукопожатием.
Код может выглядеть следующим образом
$filecounter = 0;
foreach ($files as $file) {
// add $file to zip archive
$filecounter++;
if ($filecounter % 50 == 0) {
echo $filecounter;
}
}
Есть ли другие варианты, чтобы заставить это работать?Или как я могу получить код «сброшен»?
Спасибо за вашу помощь!