PHP脚本在关闭/停止页面后继续


PHP script continues after closing / stopping page

似乎 php 脚本即使在关闭或停止页面后也会继续。

例如,如果我的脚本由/localhost/test.php

关闭页面后,有时它会继续运行。 我很确定重新启动 apache 会清除它,但是有没有更好的方法可以在启动后终止 php 脚本。

您可以使用

ignore_user_abort但我认为它仅适用于将PHP作为命令行脚本运行的情况。

从浏览器运行

脚本时,根据我的经验,我已经意识到即使在浏览器关闭后脚本也会运行。我没有进一步检查他们曾经运行了多长时间.

进行大量处理的脚本可以运行数分钟,我曾经可以控制如下:

  • 考虑存储在数据库表中的标志变量。
  • 提供了一种设置标志OnOff(或10)的方法。
  • 在脚本中检查该标志,如果发现该标志Off(或0),则脚本停止运行。

考虑标志的一种方法是循环,如下所示:

while(true)
{
    /* Your code here which probably does lot of processing */
    if($flag === false) break; // Or exit if you prefer
}

如果你有代码需要按照循环运行,你可以使用break。
如果要突然停止脚本,可以使用 exit 代替它的位置。

看看这个:http://php.net/manual/en/function.ignore-user-abort.php

设置客户端断开连接是否应导致脚本中止。