PHP无限循环在60秒后未终止
我创建了一个无限PHP while循环,该循环增加了一个变量,然后返回:PHP无限循环在60秒后未终止,php,Php,我创建了一个无限PHP while循环,该循环增加了一个变量,然后返回: $num = 1; while($num >0) { echo $num . "<br/>"; $num++; } 如果我错了,很抱歉,但我希望看到该作业在浏览器中被删除(没有新的回音!) 有谁能告诉我更多关于无限PHP作业运行的信息,以及它们在服务器上实际何时被终止的信息吗?你把执行时间和挂钟时间搞混了。它们不是一回事。处理器在代码的每个循环上使用很少的执行时间。这最终会让你超时,但这要比一分钟长得
$num = 1;
while($num >0) {
echo $num . "<br/>";
$num++;
}
如果我错了,很抱歉,但我希望看到该作业在浏览器中被删除(没有新的回音!)
有谁能告诉我更多关于无限PHP作业运行的信息,以及它们在服务器上实际何时被终止的信息吗?你把执行时间和挂钟时间搞混了。它们不是一回事。处理器在代码的每个循环上使用很少的执行时间。这最终会让你超时,但这要比一分钟长得多 这样想,您的处理器可能运行在2GHz。您认为执行一个循环需要多少指令?echo上的时间很长(即很慢),并且不计入处理器执行时间。
//使用set\u time\u limit
//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
//在这里启动php代码
回显“正在启动…\n”;
//设置时间限制(10)//两种方法都可以
ini设置(“最大执行时间”,10)//两种方法都可以
函数doSomeExpensiveWork($currentTime){
对于($r=0;$r<100000;$r++){
$x=tan(M_LNPI+log(ceil(日期)(“s”)*M_PI*M_LNPI+100));
}
}
试一试{
while(true)
{
$currentTime=日期(“H:m:s”);
echo$currentTime,“\n”;
doSomeExpensiveWork(当前时间);
}
}捕获(例外$e){
//回显“捕获的异常:”,$e->getMessage(),“\n”;
}
echo“这将不会执行!$x”;
//代码端
睡眠时间不计入最大执行时间限制。您是否在循环中使用sleep()
?不,抱歉,我刚刚包含了循环:您是否正在编辑正确的php.ini文件?在ubuntu上,一个在php文件夹中,另一个在apache/php文件夹中。根据您的环境设置,这些设置可能会更改。如果使用pear安装,它可能位于php5文件夹中。使用$find-名称“php.ini”您好,该网站位于共享服务器上。我从httpsdocs运行并获得了这些设置。您应该尝试绘制每次循环执行的时间,而不是数字,以确保您期望看到的超过60秒的循环只是由于网络延迟、将整个缓冲区发送到web浏览器等原因而产生的时间。您认为这个答案有助于OP理解,还是让他困惑?否决理由:不explanation@DanFromGermany这是他的问题:“有谁能给我更多关于无限PHP作业运行的信息,以及它们在服务器上何时被杀死的信息吗?”。在投反对票之前,先看问题。学会接受别人的天赋。谢谢
//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