Maximum execution time of 30 seconds exceeded
Z PHPEdia.pl
Spis treści |
Znaczenie komunikatu
Błąd oznacza, że maksymalny czas wykonania skryptu został przekroczony. Domyślnie jest to 30 sekund. Najczęściej błąd jest spowodowany niekończącą się pętlą w kodzie skryptu, lub nieudaną próbą połączenia z zewnętrznym serwerem.
Przykład 1
while(1){ // taka pętla nigdy się nie skończy }
Przykład 2
for($i = 0; $i < 20; $i++){ if($i<19){ echo $i; } else { $i = 0; } }
Podobnie jak w przykładzie 1, tutaj pętla nie skończy się nigdy, więc po 30 sekundach wystąpi błąd o przekroczeniu dopuszczalnego czasu wykonywania skryptu.
Rozwiązanie problemu
Czas wykonywania możemy ustawić w pliku konfiguracyjnym, lub za pomocą funkcji set_time_limit(), jeżeli jest wyłączony tryb safe_mode.
Przykład: użycie funkcji set_time_limit()
set_time_limit(50); //ustawiamy czas wykonywania skryptu na 50 sek. set_time_limit(0); //ustawiamy czas na 0, czyli skrypt może wykonywać się do woli
Przykład: użycie set_ini do ustawienia zmiennej w pliku php.ini
$stara_wartosc = ini_set ( 'max_execution_time', 50 );
Pod zmienną $stara_wartosc, będziemy mieli poprzednią wartość (standardowo 30), bądź false, jeżeli nie uda się ustawić zmiennej (w przypadku, kiedy jest włączony tryb bezpieczny).
Linki zewnętrzne
- Sposoby rozwiązania tego błędu
- PHP Errors List - lista popularnych błędów PHP i sposoby ich rozwiązania
Jest to element FAQ, czyli zestawienia odpowiedzi na najczęściej zadawane pytania.
Zestawienie: Informacje | Podstawy PHP | Porady praktyczne | Pytania z forum | Bezpieczeństwo
