Is it possible to extend the execution time of a php script?

Every once in a while I need to process a HUGE file. Though PHP probably isn't the most efficient way of processing the file, I'll usually use PHP because it makes coding the processing script much faster. To prevent the script from timing out, I need to increase the execution time of the specific processing script. Here's how I do it.

php code

ini_set['max_execution_time', 300]; //300 seconds = 5 minutes

Place this at the top of your PHP script and let your script loose!

PHP time limit – extend script running time with php.ini

Some scripts require some time to execute, and they might reach your PHP time limit.

Fatal error

If PHP time limit is too short for your script, you will see this error:

Fatal error: Maximum execution time of N seconds exceeded in /path/to/script.php on line N

Configuring php.ini

PHP time limit can be configured in php.ini, open it up and change the following line to something more suitable:

[EDIT: Can’t find it? Look where is php.ini]

max_execution_time = 30

NOTE: PHP time limit is measured in seconds!

In order to enable PHP time limit, Apache needs to be restarted after php.ini has been edited.

Setting PHP time limit within a script

If you can’t edit your php.ini, or you want to set a time limit only for one script, you can set it with set_time_limit[N] function, which sets the time limit in seconds.

This will set to no time limit:

set_time_limit[0];

And this line to one minute:

set_time_limit[60];

NOTE: When dealing with resource-consuming operations, PHP might exceed the memory limit! However, other than PHP time limit, you can also set the PHP memory limit.

How to increase or decrease the maximum execution time of a php script

By default PHP script execution time is set for 30 seconds at php.ini file. This is the time limit set for all the files to finish its execution. If the file takes more than this set time then the execution of the script will be stopped and error message will be displayed like this.
Fatal error: Maximum execution time of 30 seconds exceeded in F:\php_files\t\test.php on line 14
This maximum execution time limit is set inside the php.ini file like this.
max_execution_time = 30     ; Maximum execution time of each script, in seconds 
This value can be increased or decreased as per our requirement at php.ini file but note that in a server environment where many sites are hosted, any change in php.ini will affect all the sites hosted by the server. So this change is not possible unless you own the server and you are the only user. In a shared hosting our host may not like to change any settings of php.ini for our requirement. So there is a option to set the file execution time for the particular file at the individual file end. This adjustment of time limit has no effect if php is running in safe mode. Let us try to learn how this works.

We will use time stamp to find out the delay between starting and ending of a script execution. We will store the time stamp value at the starting of the script and then again we will record at the end of the script . The difference of these two values will give us idea how much time the script has taken to execute. Note that here between two values of time we will try to add some delay by using sleep[] function. This sleep function takes numeric value in seconds and delay the execution for that many seconds. We can also create delay by using for loop but this is a better solution. Here is the code.

$t1=time[];
sleep[20];
$t2=time[];

$t_lapsed=$t2-$t1;
echo "Total time lapsed = $t_lapsed";

We have introduced a delay of 20 seconds and this will execute without any problem, now increase the sleep value to 50 seconds and on execution you will get the error message saying maximum execution time exceeded. This is because by default the maximum execution time set at php.ini is 30 seconds. Now let us change the above code by adding one line set_time_limit[60]. Here is the code

set_time_limit [ 60 ];
$t1=time[];

sleep[50];

$t2=time[];
$t_lapsed=$t2-$t1;
echo "Total time lapsed = $t_lapsed";

Now the script will execute fine without any error message. We can see the total time taken by the script.

We can set the time to unlimited value by making it to 0 value. Like this

set_time_limit [0];



Subscribe

* indicates required

Email Address *

First Name

Last Name

Subscribe to plus2net


    plus2net.com

    Click here for More on PHP File functions

    Akshata

    07-12-2018

    After doing all the changes in php.ini file still facing same issue[getting same error maximum execution time exceeded error]. KIndly help me out.

    Post your comments , suggestion , error , requirements etc here .

    Detail

    How can we increase the execution time of PHP script?

    To increase the script execution time, you can use the following snippet at the top of your script. ini_set [ 'max_execution_time' , '300' ]; In the above example, it would set the max_execution_time directive to 300 seconds.

    Is it possible set infinite execution time in PHP?

    Yes, it is possible to set an infinite execution time for the PHP Script. We can do it by adding the set_time_limit[] function at the beginning of the PHP script.

    How do I increase my max execution time?

    Set Max_Execution_Time globally in php..
    Locate and open your PHP build folder..
    Find the php.ini file and open it..
    Find the following line in the text configuration file – max_execution_time=30..
    Change the value 30 to the value of choice, Remember, this value is in seconds..
    Save & Close..

    How do you set an infinite execution time for a PHP script and avoid the error maximum execution time exceeded '?

    Use PHP inbuilt function set_time_limit[seconds] where seconds is the argument passed which is the time limit in seconds. It is used, when the user changes the setting outside the php. ini file. The function is called within your own PHP code.

    Bài mới nhất

    Chủ Đề