как сделать эхо-печать прямо сейчас на PHP?

По умолчанию он ничего не распечатает, пока вся страница не закончит выполнение.

Есть ли какая-нибудь функция, которая может сразу же очистить ее?

Но не по вызову ob_end_flush() несколько раз, чего я не хочу.

Надеюсь, вы меня приняли?

Если буферизация вывода включена, то очистка является единственным способом вывода чего-либо в браузер. Если вы хотите вывести сразу, а затем буферизацию вывода. Если это не под вашим контролем, вы можете просто вызвать ob_end_flush () в srart вашего скрипта, который отключит буферизацию вывода. Однако нет возможности передавать некоторые сообщения, а некоторые нет (без написания пользовательских функций эхо / печати)

вызов ob_end_flush () будет отключен и выключен верхний выходной буфер. Чтобы убедиться, что все выходные буферы отключены и сброшены, вы можете легко сделать это:

 while (@ob_end_flush()); 

Это будет зависеть от вашего веб-сервера. Вызов флеша будет очищать вывод любого текущего буфера, однако, как говорится на связанной странице:

flush () не влияет на схему буферизации вашего веб-сервера или браузера на стороне клиента. Таким образом, вам нужно вызвать оба объекта ob_flush () и flush (), чтобы очистить выходные буферы.

Несколько серверов, особенно на Win32, все равно будут буферизовать вывод из вашего скрипта до тех пор, пока он не завершится до передачи результатов в браузер.

Серверные модули для Apache, такие как mod_gzip, могут выполнять собственную буферизацию, что приведет к тому, что flush () не приведет к немедленному отправке данных клиенту.

Вы можете отключить буферизацию вывода на вашем сервере разработки / тестирования. Измените переменную output_buffering в файле конфигурации php.ini.

ob_end_flush () выдает уведомление, если оно используется в верхней части скрипта, когда буфер отсутствует. Это может быть проблемой, если вы планируете устанавливать файлы cookie или заголовки. Я обнаружил, что это не повлияло на буферизацию на моем общем сервере (Rackspace Reseller).