Home > Article > Backend Development > php ignore_user_abort() function setting disconnects from the client and the script continues execution_PHP tutorial
ignore_user_abort() can still execute PHP code after the client is closed, keeping the PHP process running During execution, the so-called scheduled task function and continuous process can be realized. You only need to open the execution script. Unless the server such as apache is restarted or there is output from the script, the PHP script will always be in the execution state. At first glance, it is very practical, but the cost is a The continuous process of PHP executing scripts is very expensive, but it can achieve many unexpected functions.
Definition and usage
ignore_user_abort() function sets whether disconnecting from the client will terminate the execution of the script.
This function returns the previous value (a Boolean value) set by user-abort.
Grammar
ignore_user_abort(setting)
Parameter Description
setting is optional. If set to true, disconnects from the user are ignored, if set to false, causes the script to stop running. If this parameter is not set, the current settings will be returned.
COMMENT : PHP will not detect if the user has disconnected until trying to send information to the client. Simply using the echo statement does not ensure that the message is sent, see the flush() function.
Usage example:
(1) Combined with the set_time_limit() function to implement a loop script execution task
<?php ignore_user_abort(); set_time_limit(0); $interval=60*15;//说明:每隔15分钟循环执行 do{ //执行的业务 }while(true);
(2) Customize the implementation file output and track the execution results of the ignore_user_abort() function
<?php ignore_user_abort(TRUE); set_time_limit(0); $interval=10; $stop=1; do{ if($stop==10) break; file_put_contents('phpernote.com.php',' Current Time: '.time().' Stop: '.$stop); $stop++; sleep($interval); }while(true);
Open the phpernote.com.php file. The file content is as follows:
Current Time: 1273735029 Stop: 9
The principle is that even if the client terminates the script, it will still be executed every 10 seconds, and the current time and termination point will be printed out, so that the specific effect of the ignore_user_abort() function can be tested.
Through examples, I found that using the ignore_user_abort() function is still very practical when implementing scheduled tasks, continuous processes, etc.