我有 php_mod 和一个 apache 服务器。
如果我从浏览器启动脚本,它将持续存在,直到执行完成(即使我关闭浏览器)
我怎样才能停止这个过程?
通常,如果您发送输出,这种情况不会发生:如果网络服务器检测到断开连接,PHP 进程也会停止(这就是为什么我们有这样的函数register_shutdown_function
使sure某事已完成(当然除非您遇到致命错误))。
然而,由于 HTTP 是无状态的,网络服务器检测到断开连接的唯一时间点是当它尝试发送内容时(另请参阅以下位置的注释)ignore_user_abort
(默认为 false,这正是您想要的))。根据请求的上下文,可行的组合可能会在大循环中向用户发送未显示的数据,在 HTML 中可能会发送空格和flush
。不过,这可能会出现在任何缓冲区(PHP、服务器、网络中的其他位置)中,因此检测仍然不是 100%,但这几乎是不可避免的。合理的时间限制以避免无限循环,并且仅针对实际的请求提高该限制need它们是你能做到的最好的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)