PHP script continues after closing / stopping page

2020-02-07 10:05发布

Seems php scripts continue even after closing or stopping a page.

for example, if my script is run by /localhost/test.php

after I close the page, sometimes it continues to run. I'm pretty sure restarting apache clears it out but is there a better way to terminate the php script after it's started.

标签: php exit
2条回答
家丑人穷心不美
2楼-- · 2020-02-07 10:44

You could use ignore_user_abort but I think it only applies if you are running PHP as a command line script .

When running scripts from browser , in my experience I have realized scripts running even after the browser was closed . I did not go further to check how long they used to run .

The scripts that does huge processing that could run many minutes , I used to have control as below :

  • A flag variable is considered which is stored in a database table .
  • A way is provided to set the flag On or Off ( or 1 or 0 ) .
  • The flag is checked in the script and the script is stopped running if the flag is found to be Off ( or 0 ) .

One way to consider the flag is in a loop as below :

while(true)
{
    /* Your code here which probably does lot of processing */

    if($flag === false) break; // Or exit if you prefer
}

If you have code that need to run following the loop , you would use break .
If you want to abruptly stop the script you could use exit instead in its place .

查看更多
Rolldiameter
3楼-- · 2020-02-07 10:55

check this out: http://php.net/manual/en/function.ignore-user-abort.php

Sets whether a client disconnect should cause a script to be aborted.

查看更多
登录 后发表回答