停止php脚本执行

时间:2010-10-07 08:59:09

标签: php

我有php_mod和apache服务器。 如果我从浏览器启动脚本,它将一直持续到执行完成(即使我关闭浏览器)

我该如何停止这个过程?

4 个答案:

答案 0 :(得分:4)

通常,如果您正在发送输出,则不会发生这种情况:如果Web服务器检测到断开连接,则PHP进程也会停止(这就是为什么我们有register_shutdown_function之类的函数来使确定已完成某些事情(当然,你会遇到致命的错误)。)

但是,由于HTTP是无状态的,因此网络服务器检测断开连接的唯一时间点是尝试发送内容时(另请参阅ignore_user_abort处的备注(默认为false,这是您想要的) ))。根据请求的上下文,一个可行的kludge可以在大循环中向用户发送非显示的数据,用HTML可以发送空白和flush。这可能最终会出现在任何缓冲区中(PHP,服务器,网络中的其他位置),因此检测仍然不是100%,但这是不可避免的。一个理智的时间限制,以避免无限循环,只有提高实际需要它们的请求的限制是你能做的最好的。

答案 1 :(得分:2)

检查脚本中的任何位置是否设置了ignore_user_abort(true)。或者如果在.htaccess中设置了php_value ignore_user_abort指令

答案 2 :(得分:-1)

在您的脚本中使用(如果已经过了一段时间)

die();

答案 3 :(得分:-2)

关闭浏览器不会终止正在运行的进程。如果要停止后台进程,则必须终止该进程。

如果您使用的是Windows,则可以使用Apache服务管理器重启apache或使用任务管理器将其终止。