是否仍然可以使用输出缓冲,如果是的话


Is it still possible to use output buffering, if so how?

我一直在寻找一种在浏览器中显示内容的方法,而 php 脚本执行相当长的循环......使用ob_start()flush()ob_flush()ob_end_flush()。它失败了。

在研究 php.net 时,我遇到了一个用户帖子,上面写着:

"截至 2012 年 8 月,所有浏览器似乎都显示出一种全有或全无的缓冲方法。换句话说,当php运行时,无法显示任何内容。

该帖子继续说所有其他帖子都无关紧要。如果这是真的,为什么 PHP.net 显示已弃用的必要功能?如果不是,有些人可以请我如何正确实现简单脚本的输出缓冲:

function simpleFunction() {
    for ($i = 0; $i < 10000; $i++) {
        $data = $externalJsondata;
        if($data == "True")
        {
        echo ("Output1");
        }
        else{
        echo ("Output2");           
        };
    };   
}
simpleFunction(); 

答案/黑客 提供者:Joe Watkins

function simpleFunction() {
if (!defined('STDOUT'))define('STDOUT', fopen("php://stdout", "w"));
    for ($i = 0; $i < 10000; $i++) {
        $data = $externalJsondata;
        if($data == "True")
        {
        echo ("Output1");
        flush(STDOUT);
        }
        else{
        echo ("Output2");
        flush(STDOUT);        
        };
    };   
}
simpleFunction(); 

谢谢;)