我正在创建一个简单的脚本来测试我可以在我的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/>";
}
提前谢谢。
答案 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可能?)