<?
echo "123";
sleep(5);
echo "456";
?>发现不能马上输出123,而是等待五秒后一次性输出456如何实现先输出123 等待五秒后在输出456?

解决方案 »

  1.   


    echo 1234444;
    ob_flush();
    flush();
    sleep(3);
    echo 567;在WIN下无效
      

  2.   

    http协议请求可能是直接把静态页面传递到browser上的,你可能要用js了。或者可能你想用命令行的php或者用来做gtk?
      

  3.   

    根据经验判断,十有八九你所真正需要实现的效果应该使用另外的实现方式,而不是所谓的“用sleep实现依次等待输出”。你可以试着把你的应用场景讲一讲,也许大家能帮你找到更合适的方法。
      

  4.   

    <?
    echo "123";
    sleep(5);
    echo "456";
    ?>
    一楼的代码应该是有问题的。理论上用ajax可以实现。
    一楼的代码执行 echo "123";之后停止5秒,此时因为没有完全执行完php代码,因此输出结果不现实,echo "456";执行之后才会显示。
      

  5.   

    假定程序名为test.php
    <?
    if(isset($_get['outstr']))
    {
    $outstr=$_get['outstr'];
    echo $outstr;
     $outstr=$outstr.'<br>'.$newstr;//newstr是下一次新增的显示字串,哪里获取这里省略
    }else
    {
    echo "123";
    }
    echo "<script>setTimeout('JumpUrl()',5)</script>";
    //JumpUrl()是转址函数
    echo "<script>";
    echo "function JumpUrl()";
    echo "{";
    echo "window.location.href='http://domain/test.php?outstr=$outstr';";
    echo "}";
    echo "</script>";
    ?>
      

  6.   

    PHP延时输出代码 PHP延时输出语句PHP延时输出代码,如下:ob_end_clean();
    for($i=0;$i<50;$i++){
     echo "第:".$i."次执行输出:http://www.e2003.net<BR>";
     flush();
     sleep(1);
    }延时输出详解:sleep() 作用:函数延迟代码执行若干秒,注意,参数以秒计的暂停时间。
      

  7.   

    看来你还没明白我的意思,我是想请你讲“应用场景”,而不只是一个“表现方法的细节”。如果只是望文生义地理解你的描述,那直接用 javascript 处理一下岂不是更简单。一般来说,PHP 作为一种服务端编程语言,我们应该想尽办法让它尽快运行完毕、返回结果并结束,哪里还敢用“延迟”?每个 request 的处理时间长出一点点,对服务器的整体性能(尤其是并发处理能力)都会有很大的影响。绝不能把客户端所需要的某种延迟直接映射到服务器端。
      

  8.   

    按理说 用ob_flush 可以实现的;但是有点。