我创建了一个无限的PHP while循环,它增加了一个变量然后回显:
$num = 1;
while($num >0) {
echo $num . "<br/>";
$num++;
}
由于php.ini中的设置如下所示,我希望在60秒后杀死/终止此操作:
max_execution_time 60 60
max_input_time 60
对不起,如果我错了,但我希望看到这个工作在浏览器中被杀死(没有新的回声!)......
任何人都可以向我提供有关无限运行的PHP作业以及它们何时在服务器上被杀死的更多信息吗?
答案 0 :(得分:1)
您将执行时间与挂钟时间混淆。它们不是同一件事。处理器在代码的每个循环上使用非常少的执行时间。它最终会让你离开,但这需要花费更长的时间。
可以这样想,您的处理器可能以2GHz运行。您认为执行其中一个循环需要多少指令?回声的时间很长(即很慢),并且不计入处理器执行时间。
答案 1 :(得分:0)
//using set_time_limit
// starting php code here
echo "starting...\n";
// set_time_limit(10); //either would work
ini_set("max_execution_time", 10); //either would work
function doSomeExpensiveWork($currentTime){
for ($r = 0; $r < 100000; $r++){
$x = tan(M_LNPI+log(ceil( date("s")*M_PI*M_LNPI+100)));
}
}
try{
while(true)
{
$currentTime = date("H:m:s");
echo $currentTime, "\n";
doSomeExpensiveWork($currentTime);
}
} catch (Exception $e) {
//echo 'Caught exception: ', $e->getMessage(), "\n";
}
echo "this will not be executed! $x";
// code end