获得PHP的输出缓冲和放大冲洗`工作 - 预期

时间:2014-07-25 18:45:36

标签: php buffer flush

下面的代码通过一个大文件然后一个接一个地吐出来...... 但是这个糟糕的东西只是等待并等待这个6000行文件 - 浏览器状态消息“从localhost传输数据......” - 最终会这样做!

我只是好奇还有什么要做的,以避免等待,看看即时结果..

    //------------------------------------------------ 
    if (ob_get_level() == 0) ob_start(); 
    //------------------------------------------------

    echo '<pre><ol>';
    $handle = fopen($file, "r");
    while(!feof($handle)){
    $line = fgets($handle);
    echo '<li>' , $line , "\n";
    //------------------------------------------------
    ob_flush();
    flush();    
    //------------------------------------------------
    }
    echo '</pre>';
    fclose($handle);

    //------------------------------------------------
    ob_end_flush();
    //------------------------------------------------

我希望浏览器立即响应 - 因为服务器处理循环中的每次迭代。

期望的结果是我应该能够看到浏览器中的文档变得越来越大,而垂直滚动条以恒定的方式变得越来越小。

1 个答案:

答案 0 :(得分:0)

如果你想加载到屏幕,为什么要使用ob_flush? ob_flush在将其转储到屏幕之前处理所有内容。为什么不从头开始将其转储到屏幕上?