PHP flush()不适用于laravel?

时间:2012-12-09 19:21:56

标签: php laravel

我正在使用Laravel,我需要输出数据。当我尝试在Laravel之外加载页面时,它运行正常。如果我在Laravel中使用它,它不会刷新,它会等到结束并打印结果。

view.php

<?php

if (ob_get_level() == 0) ob_start();
for ($i = 0; $i <= 10; $i++){

    echo "<br> Line to show. $i";
    echo str_pad('',4096)."\n";    

    ob_flush();
    flush();
    sleep(1);

}
ob_end_flush();
?>

3 个答案:

答案 0 :(得分:5)

想出来,我需要添加ob_flush();

答案 1 :(得分:0)

这个顺序对我有用。

ob_implicit_flush(true);
echo "Processing ... "; // Or give out JSON output
ob_flush();
sleep(5); //A time-consuming synchronous process (SMTP mail, maybe?)
echo "Done";

答案 2 :(得分:0)

更新,对于任何来到这里的人。

上述解决方案对我不起作用。有效的是添加

header('X-Accel-Buffering: no');

在任何输出之前。

在这里找到它:https://laracasts.com/discuss/channels/laravel/live-output-in-blade-template-ob-flush