在60秒之前执行脚本

时间:2014-09-19 02:58:01

标签: php

我正在创建一个简单的脚本来测试我可以在我的while循环中回显60秒,但问题是它不会在我的循环内回显。我不知道它是否真的在我的while循环中执行。然后我的浏览器就会崩溃。

$timelimit = 60; //seconds
set_time_limit($timelimit);
$start_time = time(); //set startup time;



while(((time() - $start_time) < $timelimit) || !$timelimit){
    echo "executing..<br/>";
}

提前谢谢。

3 个答案:

答案 0 :(得分:1)

这是一个非常紧凑的循环。它将运行得非常快并且将创建一个非常大的输出,最终会杀死浏览器(它将有数十万行)。您可以在循环中添加一些延迟:

while(((time() - $start_time) < $timelimit) || !$timelimit){
    sleep(1); // pause for 1 second
    echo "executing..<br/>";
}

在这种情况下,输出只有60行,浏览器应在等待一分钟后呈现它。

答案 1 :(得分:1)

CPU执行非常先行(每次执行大约10^-9s)。您的循环时间为60 seconds。因此,请考虑将执行多少(可能300915626次执行)执行。在此期间,如果您想要打印某些东西,您的浏览器将会被杀死。

答案 2 :(得分:0)

如果您希望在脚本生成输出时看到输出,那么您需要在回显后添加flush();。但是,如果我没记错的话,php仍会等待发送输出,直到它有一定数量的字节(1024可能?)