我有这样的功能和大部分的时间,当我运行该功能会出现以下错误:函数超过最大执行时间
Fatal error: Maximum execution time of 30 seconds exceeded
位置(线)的误差总是不同。
这是函数:
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);
}
}
我真的不知道该怎么可能是错的...
编辑:延长时限是不是在这种情况下的解决方案,这个代码可以并应始终在几个毫秒内执行。
所以更改期限结束恰好工作? http://php.net/manual/en/function.set-time-limit.php – PlantTheIdea
有没有在这个代码,会导致无限循环的,因为没有循环。你需要看看是什么调用这个函数。 –
看起来你打一个响应缓慢的互联网服务和/或调用你的函数在一个循环。 – Tarik