Одна вещь, которую я заметил с php, заключается в том, что на экран ничего не выводится, пока скрипт не перестанет работать. Для проекта, над которым я работаю, я загружаю список из более чем 100 элементов, и он выполняет HTTP-запрос для каждого элемента и по завершении показывает страницу со статусом каждого элемента, неудачей успеха и т. Д.
Я хочу знать, есть ли способ вывести результаты каждого цикла «foreach», как они происходят? Таким образом, пользователь, наблюдающий за экраном, видит, что магия происходит по одной линии за раз или после 5 строк.
Я только когда-либо видел это с запросами типа Ajax, это то, что я должен искать вместо этого, может быть? Может ли кто-нибудь указать мне на php-функцию, которая делает это или это невозможно?
Возможно, лучше сохранить весь вывод сценария в буфере, а затем сбросить буфер при необходимости.
Например:
<?php if (ob_get_level() == 0) ob_start(); $test = Array('one','two','three','four'); foreach ($test as $key=>$val) { echo $test; ob_flush(); flush(); } ob_end_flush(); ?>
Убедитесь, что mod_gzip отключен!
flush()
должен сделать это, или вы можете посмотреть все функции буферизации вывода
Используйте команду flush()
я использую
flush(); @ob_flush();
после выхода.