Вы не предоставили возможность ob_start, что позволяет очищать буфер, т.е. PHP_OUTPUT_HANDLER_FLUSHABLE отсутствует.
Но, по умолчанию для этих параметров уже установлено хорошо в соответствии с docs:
флагов параметра битовый, который управляет операциями, которые могут быть выполнены на выходном буфере. По умолчанию используется очистка, очистка и удаление выходных буферов, которые могут быть установлены явно через PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE, или PHP_OUTPUT_HANDLER_STDFLAGS как стенография.
Так что просто оставьте аргумент flags. Кстати, другие аргументы были указаны их значения по умолчанию, так что вы можете оставить их, а также:
if (ob_get_level() == 0)
ob_start(); // use defaults for all arguments.
echo '<div id="spinner">Loading...</div>';
ob_end_flush(); // this does a clean as well
flush();
Обратите внимание, что очистка буфера не уничтожить то, что вы уже покраснел. Все, что покраснело, появляется в браузере и больше не находится под контролем PHP. Это зависит от вашего клиентского кода (JavaScript) для дальнейшей обработки такого вывода и/или перенаправления пользователя на другую страницу.
Почему бы не использовать ob_end_flush()? –
ob_end_flush() вместо ob_end_clean()? Пробовал это, это не имеет значения. – Totallama