Pobieram plik JSON ze źródła online, a gdy przechodzi przez pętlę, pojawia się ten błąd:
Błąd krytyczny: przekroczony maksymalny czas wykonania 30 sekund w C: \ wamp \ www \ temp \ fetch.php w linii 24
Pobieram plik JSON ze źródła online, a gdy przechodzi przez pętlę, pojawia się ten błąd:
Błąd krytyczny: przekroczony maksymalny czas wykonania 30 sekund w C: \ wamp \ www \ temp \ fetch.php w linii 24
Odpowiedzi:
Twoja pętla może być nieskończona. Jeśli tak nie jest, możesz przedłużyć maksymalny czas wykonania w następujący sposób:
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
i
set_time_limit(300);
może służyć do tymczasowego przedłużenia limitu czasu.
Miałem ten sam problem i rozwiązałem go, zmieniając wartość parametru max_execution_time
w php.ini
następujący sposób:
max_execution_time = 360 ; Maximum execution time of each script, in seconds (I CHANGED THIS VALUE)
max_input_time = 120 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB by default)
Mam nadzieję, że to może ci pomóc.
php.ini
można znaleźć w /etc/php5/apache2/php.ini
.... Używam ubuntu 13.04 ...
Wszystkie powyższe odpowiedzi są poprawne, ale w niektórych przypadkach używam prostego sposobu, aby tego uniknąć.
Wystarczy umieścić to polecenie na początku skryptu:
set_time_limit(0);
Napotkałem ten problem podczas aktualizacji do WordPress 4.0 . Domyślnie WordPress ogranicza maksymalny czas wykonania do 30 sekund.
Dodaj następujący kod do pliku .htaccess w katalogu głównym instalacji WordPress, aby zastąpić domyślny.
php_value max_execution_time 300 //where 300 = 300 seconds = 5 minutes
Edytuj php.ini
Znajdź tę linię:
max_execution_time
Zmień jego wartość na 300:
max_execution_time = 300
300 oznacza 5 minut czasu wykonania dla żądania HTTP.
Upłynął limit czasu Twojego skryptu. Spójrz na funkcję set_time_limit (), aby zwiększyć czas wykonywania. Lub profiluj skrypt, aby działał szybciej :)
jeśli wszystkie powyższe nie zadziałały, dodaj .htaccess
plik do katalogu, w którym znajduje się skrypt i umieść go w środku
<IfModule mod_php5.c>
php_value post_max_size 200M
php_value upload_max_filesize 200M
php_value memory_limit 300M
php_value max_execution_time 259200
php_value max_input_time 259200
php_value session.gc_maxlifetime 1200
</IfModule>
w ten sposób rozwiązałem mój problem, ani ini_set('max_execution_time', 86400);
nie set_time_limit(86400)
rozwiązałem mojego problemu, ale metoda .htaccess tak zrobiła.
Możesz usunąć ograniczenie, ustawiając je na zero, dodając ten wiersz u góry skryptu:
<?php ini_set('max_execution_time', 0); ?>
Podążaj ścieżką /etc/php5(your php version)/apache2/php.ini
.
Otwórz i ustaw max_execution_time
żądaną wartość.
Może sprawdź coś, co zmieniłeś w pliku php.ini. Na przykład zmieniłem „; intl.default_locale =” na „; intl.default_locale = en_utf8” , aby włączyć „rozszerzenie internacjonalizacji (Intl)” bez dodawania „rozszerzenia = php_intl.dll”, wtedy wystąpił ten sam błąd. Proponuję więc sprawdzić podobne błędy.
Zwiększ czas wykonywania skryptu, dodając następujący wiersz u góry skryptu PHP.
ini_set('max_execution_time', 120); //120 seconds = 2 minutes
Odwołanie pochodzi z Zwiększenie czasu wykonywania skryptu PHP
Aby przedłużyć max_execution_time
można użyć jednej ini_set
lub set_time_limit
.
// Set maximum execution time to 10 seconds this way
ini_set('max_execution_time', 10);
// or this way
set_time_limit(10);
sleep(2);
ini_set('max_execution_time', 5);
register_shutdown_function(function(){
var_dump(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']);
});
for(;;);
//
// var_dump outputs float(7.1981489658356)
//
więc jeśli chcesz ustawić dokładny maksymalny czas działania skryptu, twoje polecenie musi być pierwsze.
Różnice między tymi dwiema funkcjami są
set_time_limit
nie zwraca informacji, czy się udało, ale wyświetla ostrzeżenie o błędzie.ini_set
zwraca starą wartość w przypadku sukcesu lub fałsz w przypadku niepowodzenia bez żadnego ostrzeżenia / błęduMam ten sam problem na stronie WordPress, dodałem plik .htaccess, a następnie działał dobrze dla mnie.
php_value max_execution_time 6000000
Wprowadziłem pewne zmiany w moim przypadku w: xampp \ phpMyAdmin \ libraries \ config.default.php
szukałem: $cfg['ExecTimeLimit']
i zmień wartość po prawej stronie ...
Możesz zmienić wartość prawej ręki na dowolną wyższą wartość, na przykład „5000”. i to działa.