0

私はこの関数を持っていますが、ほとんどの場合、この関数を実行すると次のエラーが発生します:

致命的なエラー: 最大実行時間の 30 秒を超えました

エラーの場所 (行) は常に異なります。

そして、これは関数です:

            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);
                }
            }

私は本当に何が間違っているのか分かりません...

編集:この場合、制限時間を延長することは解決策ではありません。このコードは常に数ミリ秒以内に実行できます。

4

4 に答える 4

0

これを使って:

 ini_set('max_execution_time', 300); //300 seconds = 5 minutes

あなたが望むものは何でも、秒単位で時間を与えてください

または

set_time_limit(0); //no limit

0 - 無制限を意味します

例:

<?php

set_time_limit(20);

while ($i<=10)
{
        echo "i=$i ";
        $i++;
}

?>
于 2013-10-22T16:54:56.217 に答える
0

最大実行時間を制限するには、 を使用しますset_time_limit($seconds)。$seconds がゼロに設定されている場合、時間制限は課されません。したがって、スクリプトの先頭に追加するだけset_time_limit(0)で、スクリプトは最後まで機能します。ただし、ブラウザのタイムアウトが原因でユーザーのブラウザが切断された場合、スクリプトが停止する可能性があるためignore_user_abort(true)、スクリプトを無視してスクリプトの最後まで正確に動作するようにスクリプトの先頭に追加する必要があります

于 2013-10-22T16:55:16.023 に答える
0

PHP スクリプトの制限時間を増やす

<?php
set_time_limit(0);
于 2013-10-22T16:51:54.537 に答える