У меня есть PHP-скрипт, который занимает несколько минут, чтобы закончить обработку. Пока страница загружается, я хочу показать часть вывода PHP, когда он станет доступным, что можно сделать с помощью ob_start()
и ob_flush()
.
После того, как весь сценарий завершится, я хочу сохранить весь вывод PHP с самого начала в файл HTML. Это можно сделать с помощью ob_start()
и file_put_contents("log.html", ob_get_contents());
Проблема: Однако, поскольку мы на этом пути вызываем ob_flush()
, окончательный файл, который сохраняется с file_put_contents()
, кажется, разделен на разные файлы. Я подозреваю, что это связано с тем, что буфер очищается вызовами ob_start()
перед вызовом file_put_contents()
, но почему он не просто сохранил вывод между конечными значениями ob_flush()
и file_put_contents()
в файл, а вместо этого сохранил несколько разных файлов? (могу ошибаться, отдельные частичные файлы могут быть связаны с частичным выполнением скрипта)
Другими словами, как показать вывод PHP при выполнении длинного скрипта и при этом сохранить весь вывод PHP в один файл HTML?
код PHP
// Start the buffering
ob_start();
......
ob_flush();
......
ob_flush();
......
file_put_contents("log.html", ob_get_contents());