现在为了看到结果,我必须等到整个代码完成执行。它会挂起,直到它完成并保持加载状态。一旦它完成,它会显示我正在寻找的所有信息..无论如何,在脚本仍在运行时是否显示此信息?所以说如果我的代码顶部有一个打印件,我希望它在脚本完成执行时显示它的时候。
任何人都知道怎么做?
谢谢
答案 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-flush
和flush
,如this example所示:
for($i=10; $i > 0; $i--)
{
echo "$i ...";
flush();
ob_flush();
sleep(1);
}