似乎 php 脚本即使在关闭或停止页面后也会继续。
例如,如果我的脚本由/localhost/test.php
关闭页面后,有时它会继续运行。 我很确定重新启动 apache 会清除它,但是有没有更好的方法可以在启动后终止 php 脚本。
您可以使用
ignore_user_abort但我认为它仅适用于将PHP作为命令行脚本运行的情况。
从浏览器运行脚本时,根据我的经验,我已经意识到即使在浏览器关闭后脚本也会运行。我没有进一步检查他们曾经运行了多长时间.
进行大量处理的脚本可以运行数分钟,我曾经可以控制如下:
- 考虑存储在数据库表中的标志变量。
- 提供了一种设置标志
On
或Off
(或1
或0
)的方法。 - 在脚本中检查该标志,如果发现该标志
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
设置客户端断开连接是否应导致脚本中止。