sleep() и flush() работают на локальном хосте с помощью MAMP, но не работают на сервере DreamHost.

У меня есть этот тестовый код

<?php

if (ob_get_level() == 0) ob_start();

for ($i = 0; $i<10; $i++){

        echo "<br> Line to show.";
        echo str_pad('',4096)."\n";    

        ob_flush();
        flush();
        sleep(3);
}

echo "Done.";

ob_end_flush();

?>

Он отлично работает, когда я пытался запустить его на локальном хосте MAMP (PHP 7.0.15, веб-сервер Apache), но когда я пробовал его на сервере DreamHost (PHP 7.0 CGI), страница загружалась для общего количества сна в цикле. и выводить все одновременно, вместо того, чтобы распечатывать каждую строку между интервалами сна.

Что мне делать, чтобы исправить это?


person John    schedule 29.03.2017    source источник
comment
Страница загружается очень медленно, да. Загружается 30 секунд)))   -  person u_mulder    schedule 30.03.2017
comment
Возможно, связано с stackoverflow.com/questions/3445222/php-output-with-sleep. Если вы пойдете более 1024 байт на флеш работает?   -  person Scuzzy    schedule 30.03.2017
comment
Многие серверы настроены с буферизацией ответов, и такие вещи должны изменить конфигурацию.   -  person Tatsuyuki Ishi    schedule 30.03.2017