断开客户端后PHP杀死脚本

时间:2012-10-28 20:16:34

标签: php apache client lithium disconnect

目前我正在使用PHP系统(用于在webservices之间同步数据)(使用Lithium框架),该系统通过curl向不同的Web服务发出多个请求。

对于请求中的每个响应(可能相当少,请说100)。但是,当客户端断开连接时(例如,在浏览器中按下停止),脚本将在客户端断开连接后继续运行(日志行继续保留在日志文件中)。

据我所知,PHP只在尝试将输出发送到浏览器时检测到客户端断开连接。所以现在我在浏览器的每个请求(以及日志文件的每一行)之后刷新一些数据。但PHP脚本继续运行。

我现在在每次日志调用后都有以下代码,但这似乎不起作用。

//Die on no connection
ignore_user_abort(false);
echo chr(0); flush(); ob_flush();
if(connection_aborted())
{
    die();
}

脚本一直在运行,我可以做些什么来确保脚本在客户端(或至少很快之后)断开连接后停止?

编辑:为什么我总是在发布问题后找到解决方案。添加'ob_flush',这似乎有效。非常感谢任何研究过此事的人。

1 个答案:

答案 0 :(得分:2)

尝试使用ob_flush()代替flush(),这将刷新输出缓冲区..