1

我只想在每个整数之间以 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()直到整个时间都被执行。

4

5 回答 5

8

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

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

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

于 2012-05-22T10:03:37.393 回答
4

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

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

于 2012-05-22T10:02:47.290 回答
1

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

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

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

于 2012-05-22T11:14:57.857 回答
1

您想在 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 实时计数器。

于 2012-05-22T10:34:50.123 回答
0

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

于 2012-05-22T10:06:32.867 回答