2

目前我正在开发一个 PHP 系统(用于在 web 服务之间同步数据)(使用 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”,这似乎有效。无论如何,感谢任何对此进行调查的人。

4

1 回答 1

2

尝试使用ob_flush()而不是flush(),这将刷新输出缓冲区..

于 2012-10-28T20:23:17.570 回答