在脚本仍在执行时显示结果

时间:2011-03-24 06:45:45

标签: php

现在为了看到结果,我必须等到整个代码完成执行。它会挂起,直到它完成并保持加载状态。一旦它完成,它会显示我正在寻找的所有信息..无论如何,在脚本仍在运行时是否显示此信息?所以说如果我的代码顶部有一个打印件,我希望它在脚本完成执行时显示它的时候。

任何人都知道怎么做?

谢谢

4 个答案:

答案 0 :(得分:56)

您可以像这样使用output buffering

ob_start();

echo('doing something...');

// send to browser
ob_flush();

// ... do long running stuff
echo('still going...');

ob_flush();

echo('done.');
ob_end_flush(); 

答案 1 :(得分:3)

你可以通过输出缓冲来实现。使用ob_start()打开脚本顶部的输出缓冲。这使PHP不向浏览器发送任何输出。相反,它存储在内部。 使用ob_flush()随时刷新您的输出,内容将发送到浏览器 但请记住,输出缓冲受许多其他因素的影响。我认为某些版本的IIS将等到脚本完成,忽略输出缓冲。客户端的一些防病毒软件(它是 Panda 吗?)可能会等到页面完全加载后再传递给浏览器。

答案 2 :(得分:2)

这个对我有用:(source

function output($str) {
    echo $str;
    ob_end_flush();
    ob_flush();
    flush();
    ob_start();
}

答案 3 :(得分:0)

我必须同时放置ob-flushflush,如this example所示:

for($i=10; $i > 0; $i--)
{
    echo "$i ...";
    flush();
    ob_flush();
    sleep(1);
}