Php 函数超出了最大执行时间
我有此函数,在运行此函数时,大多数情况下会发生以下错误: 致命错误:超过了30秒的最大执行时间 错误的位置(线)总是不同的 这就是功能:Php 函数超出了最大执行时间,php,Php,我有此函数,在运行此函数时,大多数情况下会发生以下错误: 致命错误:超过了30秒的最大执行时间 错误的位置(线)总是不同的 这就是功能: function selectAdsY(){ //Put all the ads in the arrays. global $ads; global $adsX; global $adsY;
function selectAdsY(){
//Put all the ads in the arrays.
global $ads;
global $adsX;
global $adsY;
global $Min;
global $ImpIfriends;
global $ImpLivejasmin;
global $ImpExo;
global $ImpND;
global $ImpAmazon;
// Change these
$ImpIfriends = 20;
$ImpLivejasmin = 10;
$ImpExo = 0;
$ImpND = 20;
$ImpAmazon = 20;
$i = 0;
//ifriends
global $ifriends;
global $ifriendsX;
global $ifriendsY;
$iframeCountFriends = count($ifriends) - 1;
$a = rand(0, $iframeCountFriends);
$ads[$i] = $ifriends[$a];
$adsX[$i] = $ifriendsX[$a];
$adsY[$i] = $ifriendsY[$a];
if($ImpIfriends != 0){
$Min[$i] = min($ifriendsY);
}
//livejasmin
global $livejasmin;
global $livejasminX;
global $livejasminY;
$iframeCountLivejasmin = count($livejasmin) - 1;
$a = rand(0, $iframeCountLivejasmin);
$i++;
$ads[$i] = $livejasmin[$a];
$adsX[$i] = $livejasminX[$a];
$adsY[$i] = $livejasminY[$a];
if($ImpLivejasmin != 0){
$Min[$i] = min($livejasminY);
}
//exo
global $exo;
global $exoX;
global $exoY;
$iframeCountExo = count($exo) - 1;
$a = rand(0, $iframeCountExo);
$i++;
$ads[$i] = $exo[$a];
$adsX[$i] = $exoX[$a];
$adsY[$i] = $exoY[$a];
if($ImpExo != 0){
$Min[$i] = min($exoY);
}
//nasty dollars
global $ND;
global $NDX;
global $NDY;
$iframeCountND = count($ND) - 1;
$a = rand(0, $iframeCountND);
$i++;
$ads[$i] = $ND[$a];
$adsX[$i] = $NDX[$a];
$adsY[$i] = $NDY[$a];
if($ImpND != 0){
$Min[$i] = min($NDY);
}
//amazon.com
global $amazon;
global $amazonX;
global $amazonY;
$iframeCountAmazon = count($amazon) - 1;
$a = rand(0, $iframeCountAmazon);
$i++;
$ads[$i] = $amazon[$a];
$adsX[$i] = $amazonX[$a];
$adsY[$i] = $amazonY[$a];
if($ImpAmazon != 0){
$Min[$i] = min($amazonY);
}
}
我真的不知道会出什么问题
编辑:延长时间限制不是解决方案。在这种情况下,此代码可以而且应该始终在几毫秒内执行。增加PHP脚本的时间限制
<?php
set_time_limit(0);
您可能没有错误,但该错误意味着您达到了默认的最大执行时间
您可以更新此值。使用此选项:
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
无论你想做什么,都要给时间
或
0-表示没有限制
例如:
<?php
set_time_limit(20);
while ($i<=10)
{
echo "i=$i ";
$i++;
}
?>
要限制最大执行时间,请使用设置时间限制($s)
。如果将$seconds设置为零,则不会对其施加时间限制。因此,只需在脚本开头添加set\u time\u limit(0)
,脚本就会一直工作到最后。但是,如果用户的浏览器由于浏览器超时而断开连接,您的脚本可能会暂停,因此您需要在脚本开头添加忽略\u user\u abort(true)
,以忽略它并一直工作到脚本结束所以更改时间限制?这段代码中没有任何东西会导致无限循环,因为没有循环。您需要查看调用此函数的内容。看起来您正在使用响应速度较慢的Internet服务和/或在循环中调用您的函数。此代码应该可以在几毫秒内轻松执行。这就是磨我齿轮的原因。。。
<?php
set_time_limit(20);
while ($i<=10)
{
echo "i=$i ";
$i++;
}
?>