php一边执行程序一边输出结果的代码
PHP中如何实现 “在页面中一边执行一边输出” 的效果<?php
set_time_limit(0); //在有关数据库的大量数据的时候,可以将其设置为0,表示无易做图。
ob_end_clean(); //在循环输出前,要关闭输出缓冲区
echo str_pad('',1024); //浏览器在接受输出一定长度内容之前不会显示缓冲输出,这个长度值 IE是256,火狐是1024,不会出现上下的拉动条。
for($i=1;$i<=100;$i++){
echo $i.'<br/>';
flush(); //刷新输出缓冲
sleep(1); //这个控制输出的速度。
}
用php实现边执行边输出的效果
在入口文件头部使用函数:ob_implicit_flush()
打开绝对刷新 ,强制每当有输出的时候,即刻把输出发送到浏览器。这样就不需要每次输出(echo)后,都用flush()来发送到浏览器了。
ob_end_flush();
ob_implicit_flush(1);
echo 'begin zzzyk.com...<br>';
//flush(); //直接推送到浏览器
for($i=0;$i<10;$i++)
{
echo 'loading '.$i.'0%<br>';
// 如果浏览器已关闭
if ( connection_aborted() )
{
exit; //如果希望关了浏览器后程序继续执行,把这行去掉即可
}
//flush();
sleep(1);
}
如果不能实现效果
apache需要更改httpd.conf 的 FcgidOutputBufferSize 0
或者再头部加一行 header('X-Accel-Buffering: no');