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