在PHP中定时循环

时间:2012-05-22 10:00:13

标签: php loops timed

我只想在每个整数之间以10秒的间隔打印1到10的计数。

例如。

$i=10; //Time delay    
for($j=1;$j<11;$j++)  
{  
    echo $j;  
    //do something to delay the execution by $i seconds  
}

我已经尝试了所有内容including flush()ob_flush()ob_implicit_flush()但我得到的只是一个冻结的屏幕,直到整个时间都被执行。

5 个答案:

答案 0 :(得分:8)

http://php.net/manual/en/function.sleep.php

sleep函数将中断脚本的执行。

但你有没有考虑过使用Javascript这样的东西?您的脚本可能会达到最长执行时间,并将占用服务器上的资源。请改用客户端的资源!

答案 1 :(得分:4)

你想要的是与PHP相关的javascript更多。因为PHP是服务器端,所以它不是为了进行这些操作而设计的。你可以让它发挥作用,但它不会很漂亮。

在我的逻辑中;从1到10计数根本不应该涉及服务器。您可以直接在浏览器中执行此操作,因此请使用javascript。

答案 2 :(得分:1)

使用jQuery。在$(document).ready上添加10秒的延迟以显示特定的div,其中包含10秒后显示的信息。

准备就绪 - http://api.jquery.com/ready/

延迟 - http://api.jquery.com/delay/

答案 3 :(得分:0)

是的,使用Javascript,因为输出缓冲无法使用PHP使用PHP完成此任务。

答案 4 :(得分:0)

你想在php脚本运行时打印倒计时吗? 如果是,则尝试使用非推荐的片段:

ob_start();
for($i=0;$i<10;$i++) {
   echo str_repeat(" ",10000);
   echo 'printing...<br />';
   ob_flush();
   flush();
   sleep(1);
}
你看,奇怪的一句话:

echo str_repeat(" ",10000);

在决定真正刷新数据之前,浏览器似乎需要一些“数据”。 使用javascript进行实时计数器。