中止PHP中的连接
有时,在PHP中,您将不得不做一些可能花费一些时间的事情。因此,用户在脚本完成之前关闭浏览器或移至另一个页面时会遇到一些麻烦。在这种情况下,您可能想要继续执行脚本,而只是根据用户的操作将其关闭。
在尝试将信息发送到客户端之前,PHP不会检测到用户已中止连接。简单地使用echo语句并不能保证发送信息。flush()在echo调用之后使用该函数来强制PHP将输出信息发送到浏览器。
无论用户做了什么,都要将脚本运行到最后,请使用ignore_user_abort()参数为true的函数。
ignore_user_abort(true);如果您正在将事物记录到数据库中,从而仍保持数据完整性,则这可能会很有用。
要检测用户是否中止了连接,请使用该connection_aborted()功能。尽管PHP网站上的文档说该函数返回一个整数(如果客户端已断开连接则返回1,否则返回0)检测该整数不能可靠地工作。
此代码将不起作用:
假设函数返回布尔值是更可靠的,因为1将被解释为true(断开),而0将被解释为false(仍然连接)。