PHP刷新所有级别的输出缓冲

时间:2011-09-25 23:37:41

标签: php output-buffering

我正在尝试实现一个实现Http Streaming(或Chunked-Encoding)的简单Http Response类。为了实现这一点,我需要在php.ini中设置output_buffering = Off,并以特定间隔刷新输出。

PHP自动完成了这项工作 - 除了实际的刷新机制。我已经开始工作,但我不确定它是否过分了。我想知道如何立即刷新每个级别的输出缓冲,而不需要调用十亿个函数(我不确定哪些环境/在哪些情况下哪些是冗余的)。

    while (ob_get_level())
    {
        ob_end_flush();
    }

    // print the buffer

    flush();
    ob_flush();

这有多大意义吗?

1 个答案:

答案 0 :(得分:3)

您不需要ob_flush()ob_end_flush()。你的while循环就足够了。

您还应该看看:http://us.php.net/manual/en/function.ob-implicit-flush.php

flush()之后您对ob_end_flush()的需求取决于您如何设置此功能。