Home > Article > Backend Development > How to solve the error when PHP execution times out for 30 seconds
Recommended manual:php complete self-study manual
When you are doing a crawling program, php is blank for a long time and then The following error message appears:
Fatal error: Maximum execution time of 30 seconds exceeded in ......
is very simple, it means that the script execution time exceeds the upper limit of 30 seconds.
This error was often encountered in the past. It was usually handled by adding set_time_limit(0) directly to the header of the page. Today I specially summarize the handling method of this error.
After consulting relevant information, there are basically three ways for scholars in PHP introductory tutorials to deal with this error.
(1) Modify the php configuration file php.ini file (If this file is installed by default, it is under /etc/)
Find the php.ini file, Then find in this file:
max_execution_time = 30; this line, set the number 30 to the value you want, in seconds.
(You can also modify it directly to: max_execution_time=0; //No limit) Note that you need to restart the server after modifying this.
For example, if you have Apache, use service httpd restart
(2) Use ini_set() function
For those who cannot modify php.ini For friends, you can use the ini_set() function to change your maximum execution time limit value. Add the following code at the top of the program:
ini_set('max_execution_time','100');
The above setting is 100 seconds, you can also set it to 0, then there is no limit to the execution time.
(3) Use the set_time_limit() function
Add: set_time_limit(100); at the top of the program; it means that the maximum execution time is set to 100 seconds, of course it can also Set the parameter to 0, the same meaning as above.
Special description of the set_time_limit function: void set_time_limit ( int $seconds ) The function of this function is to set the time allowed for the script to run, in seconds.
If this setting is exceeded, the script returns a fatal error.
The default value is 30 seconds, or the value defined in max_execution_time in php.ini, if this value exists. When this function is called, set_time_limit() restarts the timeout counter from zero.
In other words, if the default timeout is 30 seconds and set_time_limit(20) is called when the script has been running for 25 seconds, then the total time the script can run before timing out is 45 seconds. This feature does not take effect when php is running in safe mode.
There is no other way except turning off safe mode (setting safe_mode to off in php.ini) or changing the time limit in php.ini.
Case:
If safe mode is not turned on, set the program running time to 25 seconds.
For example:
if(!ini_get('safe_mode')){ set_time_limit(25); }
Recommended related articles:
1.What is the way to timeout php
2.How to solve php request interface timeout
Related video recommendations:
1. Dugu Jiujian (4)_PHP video tutorial
Related recommendations:
PHP implementation method for executing external programs
Detailed explanation of the implementation code of PHP executing external programs
50 Tips to Improve PHP Execution Efficiency
The above is the detailed content of How to solve the error when PHP execution times out for 30 seconds. For more information, please follow other related articles on the PHP Chinese website!