当前位置:编程学习 > php >>

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');
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,