免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2921 | 回复: 5
打印 上一主题 下一主题

php flush()问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-09 11:04 |只看该作者 |倒序浏览
<?php
for($i=0;$i<10;$i++)
{
        echo $i."<br>";
        sleep(1);
}
?>
请问如何让此程序一秒在浏览器上显示出一个数字,而不是最后程序结束后一块都显示在浏览器上,我在网上看到说要使用flush(),代码如下:
<?php
for($i=0;$i<10;$i++)
{
        echo $i."<br>";
        ob_flush();
        flush();
        sleep(1);
}
?>
但结果还是程序结束后内容一次显示在浏览器上

论坛徽章:
0
2 [报告]
发表于 2009-02-09 12:46 |只看该作者
如果只要效果的话,javascript吧。搜下跑马灯。

论坛徽章:
0
3 [报告]
发表于 2009-02-10 09:11 |只看该作者
如果把echo $i."<br>";改成echo "<script type='javascript'>document.write(".$i.")</script>";就可以看到效果,是否只能用Javascript,echo $i."<br>";请问为什么就不能显示出效果?

论坛徽章:
0
4 [报告]
发表于 2009-02-10 15:51 |只看该作者

回复 #3 xiner10 的帖子

试试

  1. ob_end_clean();
  2. ob_implicit_flush(true);
  3. echo str_pad(" ", 256);
  4. for($i=0;$i<10;$i++)
  5. {
  6.         echo $i."<br>";
  7.         sleep(1);
  8. }
复制代码

论坛徽章:
0
5 [报告]
发表于 2009-02-10 18:13 |只看该作者
就算
ob_implicit_flush(true);
fflush();
ob_flush();都不行,没有解决办法,跟浏览器缓存有关系,但有时候能如愿显示。

论坛徽章:
0
6 [报告]
发表于 2009-02-12 11:17 |只看该作者
不知道樓主要的,是不是這個效果:


  1. <?php
  2. //实时显示输出
  3. ob_end_flush();//关闭缓存
  4. set_time_limit(0);
  5. $i=0;
  6. do
  7. {
  8.         echo "Now Index is :". $i."<br>";
  9.         flush();
  10.         //sleep(1);
  11.         usleep(200000);
  12.         $i++;
  13. }
  14. while ($i<50)

  15. ?>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP