2013年3月22日星期五

【转】PHP显示执行进度

如果你执行某些语句,可能会花费大量的时间,在默认情况下,PHP语句会先在服务端执行完成,再将结果送到客户端显示。而在服务端执行期间,客户端是显示空白的。如果想达到边执行边输出的效果,可以使用flush函数

set_time_limit(0); //防止执行超时

$ob_end_clean();//
sqlstr="select id,title_name from ".PREFIX."articles order by id desc";

//假设$rs是一个记录集,有上百万条记录.
foreach($rs as $row)
{
/*
这里执行你指定的操作语句
*/
echo $row["title_name"]."<br>";
flush(); 
}

/**********************/

再看一个例:
ob_end_clean();//必须加上这句
for ($i=10; $i>0; $i--) 

echo $i; 
flush(); 
sleep(1);

试运行一下这段代码,你就明白flush的作用。

根据以上原理,我们可以扩展一下功能。比如说制作程序执行的进度条。
可以在PHP执行过程中,输入java script语句,动态改变一个框的长度。

摘自:http://www.99n9.com/note/view/1927

没有评论: