用while循环发邮件,想要间隔10秒钟发一封,想到用sleep(10),但自己先写了一段小代码实验一下
echo a;
sleep(10);
echo b;结果发现十秒后ab是同时出现的,而并不是像我想的先出现a再过十秒出现b,自己上网查了一下说服务器端是把结果一起发送到客户端的,那请问在服务器端代码不是一起执行的吧,比如说我循环发邮件,那邮件是最后一起发送还是间隔10秒再发送啊,如果是一起发送那sleep(10)不就没用了?

解决方案 »

  1.   

    是间隔10秒再执行的,echo出来的内容是集中返回的,并不是动态返回的,楼主可以在命令行下执行下就看到echo的动态返回结果了,
      

  2.   

    你这样看就对了:
    //test.php
    echo a;
    sleep(10);
    echo b;$ php test.php
      

  3.   

    那是当然的,输出a后,等待10秒,再输出B,然后ab一起输到浏览器
      

  4.   

    程序执行是正常逻辑流程来的,但是因为浏览器有缓冲区的缘故,要达到一定字节数或者脚本结束之后才将内容输出到浏览器。
    楼主可以先
    str_pad(" ", 4096);    // 一般浏览器默认的缓冲区大小是4096还有ob_flush()和flush()或许对你有所帮助
      

  5.   

    echo "a";
    flush();
    sleep(10);
    echo "b";
      

  6.   

    flush -- 刷新输出缓冲