2011-03-24 65 views
27

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

任何人都知道如何做到这一点?

感谢

+0

都在你面前'ob_start谈论AJAX或php – Gowri 2011-03-24 06:48:31

回答

48

您可以使用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(); 
+3

它为我工作后,我接着说:ob_implicit_flush(真)'()'; – Bivis 2016-12-21 17:57:11

+0

我不得不添加ob_implicit_flush(true),并在php.ini中设置output_buffering = Off – embe 2017-04-02 09:07:15

3

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

0

这一个为我工作:(source

function output($str) { 
    echo $str; 
    ob_end_flush(); 
    ob_flush(); 
    flush(); 
    ob_start(); 
} 
相关问题