php 中的定时循环


Timed loop in php

我只想在每个整数之间以 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()的所有内容,但我得到的只是一个冻结的屏幕,直到整个时间被执行。

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

睡眠函数将中断脚本的执行。

但是你有没有考虑过使用Javascript来做这样的事情呢?您的脚本可能会达到最大执行时间,并且会占用服务器上的资源。请改用客户端的资源!

你想要

的比PHP更与javascript相关。因为PHP是服务器端的,所以它不是为执行这些操作而设计的。你可以让它工作,但它不会很漂亮。

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

您想在

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进行实时计数器。

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

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

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

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