2

我一直在寻找一种在浏览器中显示内容的方法,同时 php 脚本执行相当长的 while 循环......使用 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(); 
4

1 回答 1

0

答案/Hack 提供者: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(); 

谢谢 ;)

于 2013-11-01T13:13:50.333 回答