PHP Flush Все уровни буферизации вывода

Я пытаюсь реализовать простой класс 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() зависит от того, как вы установите эту функцию.