Флеш не работает
Я пытаюсь отобразить вывод процесса php в реальном времени, используя этот код ниже, но он не работает, он не показывает процесс в режиме реального времени, он только отображает окончательный результат сразу
echo "Start...";
for ($i = 0; $i<20; $i++){
echo $i;
ob_flush();
flush();
sleep(1);
}
echo "Done!";
ob_end_flush();
exit;
3 ответа
Флеш на PHP
боковая сторона. Однако некоторые веб-серверы имеют собственный кэш вывода.
IIS
например, имеет ResponseBufferLimit
вариант.
%windir%\system32\inetsrv\appcmd.exe set config /section:handlers "/[name='PHP_via_FastCGI'].ResponseBufferLimit:0"
В настоящее время большинство браузеров не отображают страницу до тех пор, пока у них не появится весь исходный контент DOM (за исключением отдельных ресурсов, таких как изображения и т. Д.), Если страница не очень большая. Я думаю, что это должно гарантировать, что все правила CSS присутствуют, прежде чем что-либо отображать. Вот что говорит руководство
Ваш вопрос не был ясен. Я думал, что вы работаете с PHP напрямую. Если вы используете PHP через браузер, это не сработает. PHP через браузер будет запускать всю программу, а затем сервер страницы. Он не имеет никаких средств для обновления HTML. Вы обычно используете ajax для этого.
Я предполагаю, что ваш фрагмент кода на самом деле выглядел так:
<!DOCTYPE html>
<html>
<body>
<?php
echo "My first PHP script!";
?>
</body>
</html>
Если вы хотите сделать это в PHP, вы должны выяснить, как запустить его напрямую. Попробуйте /questions/48005417/kak-vyipolnit-kod-php-iz-komandnoj-stroki/48005438#48005438.