1

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

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

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

4

2 回答 2

2

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

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

于 2013-10-02T22:07:19.593 回答
2

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

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

执行可能运行数分钟的巨大处理的脚本,我曾经控制如下:

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

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

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

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

如果您有需要在循环之后运行的代码,您将使用break
如果您想突然停止脚本,您可以使用exit代替它。

于 2013-10-02T22:15:24.613 回答