Флеш не работает

Я пытаюсь отобразить вывод процесса 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.

Другие вопросы по тегам