我只想在每个整数之间以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()
但我得到的只是一个冻结的屏幕,直到整个时间都被执行。
答案 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/
答案 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进行实时计数器。