<?php 
ob_end_clean();
echo str_pad(' ', 256);
for ($i=10; $i>0; $i--)
{ echo $i;
flush();
sleep(5);

?>
网上找到这样一段代码,想每秒钟间隔输出!结果发现在火狐里没用,ie里却可以,坑爹啊,不要告诉我,php有浏览器差异!

解决方案 »

  1.   

    php没有针对浏览器的差异。只是你的火狐设置有些问题,代码没问题
      

  2.   

    浏览器显示页面的时候,有的是全部传输完后再显示,有的不是。php没有问题。
      

  3.   

    你可以使用ajax实现你的效果。
      

  4.   

    php 没有浏览器差异html 有浏览器差异您并没有如实反映情况!
      

  5.   

    花了点时间查了下这个问题,大概是这样的:默认情况下b/s结构为浏览器主动拉数据,ie浏览器在接受256个字节的数据后就开始显示信息了,火狐则会等服务端程序执行完毕才一并显示
    我们可以加上一个http头让b/s结构变成服务器主动推送的的模式,这样火狐在接收到数据就开始显示,ie接收到256个字节的数据才开始显示:
    header("Content-type: multipart/x-mixed-replace;");
    echo str_pad(' ', 256);//如果去掉这一行,会出现和楼主代码相反的效果
    for($i=0;$i<10;$i++){
    sleep(1);
    echo $i;
    ob_flush();
    flush();
    }
    上面的代码在火狐和ie上面是一样的效果,表达能力有限,参考下面两篇文章吧
    http://www.laruence.com/2008/04/16/118.html
    http://blog.csdn.net/gmstart/article/details/7064034