Добрый день, заметил одну вещь и не могу понять почему так происходит. Суть вопроса: вывожу по порядку строчки, если выводить как ниже, то всё отлично работает.
<?php
for ($i = 0; $i < 6; $i++) {
if (ob_get_level()>0) ob_flush(); # очищаю дополнительный буфер
echo "Строка", $i, "<br>"; # помещаю информацию в текущий буфер
flush(); # сливаю системный буфер
sleep(1);
}
?>
Но если изменить порядок строк, как ниже, первые две строки будут выведены через секунду вместе, хотя вроде бы именно этот порядок правильный : помещаем в дополнительный буфер, сбрасываем из него, сбрасываем из системного буфера. В чём же дело, вариант ниже приведен в учебнике, и он выглядит логично, но работает правильно вариант выше.
<?php
for ($i = 0; $i < 6; $i++) {
echo "Строка", $i, "<br>";
if (ob_get_level()>0) ob_flush();
flush();
sleep(1);
}
?>