Heim > Artikel > Backend-Entwicklung > So beheben Sie den Fehler, wenn die PHP-Ausführung 30 Sekunden lang abbricht
Empfohlenes Handbuch: php vollständiges Handbuch zum Selbststudium
Wenn Sie ein Scraping-Programm ausführen, ist PHP lange Zeit leer und dann Es erscheint die folgende Fehlermeldung:
Fatal error: Maximum execution time of 30 seconds exceeded in ......
Es ist ganz einfach, es bedeutet, dass die Skriptausführungszeit die Obergrenze von 30 Sekunden überschreitet.
Dieser Fehler trat in der Vergangenheit häufig auf, normalerweise durch das Hinzufügen von set_time_limit(0) direkt zum Header der Seite. Heute fasse ich speziell die Methode zur Behandlung dieses Fehlers zusammen.
Nachdem Sie relevante Informationen konsultiert haben, gibt es für Wissenschaftler in PHP-Einführungs-Tutorials grundsätzlich drei Möglichkeiten, mit diesem Fehler umzugehen.
(1) Ändern Sie die PHP-Konfigurationsdatei php.ini-Datei (Wenn diese Datei standardmäßig installiert ist, befindet sie sich unter /etc/)
Suchen Sie die PHP-Konfigurationsdatei. ini-Datei. Suchen Sie dann in dieser Datei:
max_execution_time = 30; setzen Sie die Zahl 30 auf den gewünschten Wert in Sekunden.
(Sie können es auch direkt ändern in: max_execution_time=0; //Keine Begrenzung) Beachten Sie, dass Sie den Server nach der Änderung auf diese Weise neu starten müssen.
Wenn Sie beispielsweise Apache haben, verwenden Sie den Dienst httpd restart
(2) Verwenden Sie die Funktion ini_set()
Für diejenigen, die keine Änderungen vornehmen können php.ini Für Freunde: Sie können die Funktion ini_set() verwenden, um Ihren maximalen Ausführungszeitlimitwert zu ändern, und den folgenden Code oben im Programm hinzufügen:
ini_set('max_execution_time','100');
Die obige Einstellung beträgt 100 Sekunden , Sie können auch auf 0 setzen, dann gibt es keine Begrenzung der Ausführungszeit.
(3) Verwenden Sie die Funktion set_time_limit()
und fügen Sie oben im Programm hinzu: set_time_limit(100); Auf 100 Sekunden eingestellt, kann es natürlich auch den Parameter auf 0 setzen, was die gleiche Bedeutung wie oben hat.
Spezielle Beschreibung der Funktion set_time_limit: void set_time_limit ( int $seconds ) Die Funktion dieser Funktion besteht darin, die zulässige Zeit für die Ausführung des Skripts in Sekunden festzulegen.
Wenn diese Einstellung überschritten wird, gibt das Skript einen schwerwiegenden Fehler zurück.
Der Standardwert ist 30 Sekunden oder der in max_execution_time in php.ini definierte Wert, sofern dieser Wert vorhanden ist. Wenn diese Funktion aufgerufen wird, startet set_time_limit() den Timeout-Zähler von Null neu.
Mit anderen Worten: Wenn das Standard-Timeout 30 Sekunden beträgt und set_time_limit(20) aufgerufen wird, wenn das Skript 25 Sekunden lang ausgeführt wurde, beträgt die Gesamtzeit, die das Skript ausführen kann, bevor das Timeout abläuft, 45 Sekunden. Diese Funktion wird nicht wirksam, wenn PHP im abgesicherten Modus ausgeführt wird.
Es gibt keine andere Möglichkeit, als den abgesicherten Modus auszuschalten (safe_mode in php.ini auf „off“ zu setzen) oder das Zeitlimit in php.ini zu ändern.
Fall:
Wenn der abgesicherte Modus nicht aktiviert ist, stellen Sie die Programmlaufzeit auf 25 Sekunden ein.
Zum Beispiel:
if(!ini_get('safe_mode')){ set_time_limit(25); }
Empfohlene verwandte Artikel :
1.Was ist der Weg zum Timeout von PHP
2 . So lösen Sie das PHP-Anfrageschnittstellen-Timeout
Verwandte Videoempfehlungen:
1. Dugu Jiujian (4)_PHP-Video-Tutorial
Verwandte Empfehlungen:
PHP-Implementierungsmethode zum Ausführen externer Programme
Detaillierte Erläuterung des Implementierungscodes von PHP, das externe Programme ausführt
50 Tipps zur Verbesserung der PHP-Ausführungseffizienz
Das obige ist der detaillierte Inhalt vonSo beheben Sie den Fehler, wenn die PHP-Ausführung 30 Sekunden lang abbricht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!