Я пытаюсь реализовать простой класс Http Response, который реализует Http Streaming (или Chunked-Encoding). Чтобы это было возможно, мне нужно установить output_buffering = Off в php.ini и output_buffering = Off выходные данные через определенные промежутки времени.
PHP отлично справляется с этим автоматически – за исключением реального механизма очистки. Я получил его на работу, но я не уверен, что он за борт. Я хочу знать, как сбросить каждый уровень буферизации вывода сразу, не вызывая миллиард функций (я не уверен, какие из них избыточны в каких средах / в каких сценариях).
while (ob_get_level()) { ob_end_flush(); } // print the buffer flush(); ob_flush();
Это избыток?
Вам не нужны ob_flush() и ob_end_flush() . Ваш цикл while достаточен.
Вы также должны посмотреть: http://us.php.net/manual/en/function.ob-implicit-flush.php
Ваша потребность в flush() после ob_end_flush() зависит от того, как вы установите эту функцию.