PHP sleep()函数

时间:2013-06-06 23:53:38

标签: php function sleep

我正在尝试在echo命令之间插入延迟,并希望使用 sleep()函数。不幸的是,据我所知,PHP中的sleep()函数会延迟整个脚本。我想知道这周围是否有诀窍?

我正在尝试完成以下

  1. 回显一行
  2. 睡眠(2)
  3. echo next line
  4. 睡眠(2)
  5. 有没有办法在没有任何JS或其他东西的情况下使用PHP?

2 个答案:

答案 0 :(得分:2)

我认为你需要的只是一些javascript:

<p id="p"></p>

<script>

setTimeout(function() {
  document.getElementById('p').innerHTML = "line1";
}, 2000);

setTimeout(function() {
  document.getElementById('p').innerHTML = "line2";
}, 4000);

</script>

答案 1 :(得分:2)

我假设当你说你不想延迟你正在谈论输出的整个脚本时...你不想延迟整个输出,只是睡眠后的东西。

要记住几件事:

  1. 在收到1k内容之前,IE往往不会显示任何内容。要解决此问题,您需要通过输出一些填充...例如1024个空格来启动脚本。 (这对实际的HTML显示没有影响)

  2. 您需要确保网络服务器不会以任何方式压缩您的内容

  3. 您需要在回显后刷新输出缓冲区。

  4. 所有这些都加起来像这样:

    <?php
        // turn off output compression
        @apache_setenv('no-gzip', 1);
        ini_set('zlib.output_compression', 0);
    
        // no need to flush after every output call
        ob_implicit_flush(true);
    
        // some padding for IE
        echo(str_repeat(" ", 1024) . "\n");
    
        echo("Something here<br />");
        sleep(5);
    
        echo("Something else<br />");
    ?>