判断HTTP客户端是否已断开连接

时间:2014-01-17 10:01:07

标签: php apache http

我有一个需要很长时间才能加载的php / apache页面。基本上,它看起来像这样:

<?php
      doHeavyStuff_1();
      doHeavyStuff_2();
      doHeavyStuff_3();
      printResults();
?>

客户端有时会在处理过程中断开连接,例如,在步骤1和步骤2之间断开连接。有没有办法在PHP中检查客户端是否仍然连接,如果不是,则停止进一步处理?我希望我的代码是这样的:

<?php
      doHeavyStuff_1();
      if(<clientDisconnected>) die;
      doHeavyStuff_2();
      if(<clientDisconnected>) die;
      doHeavyStuff_3();
      if(<clientDisconnected>) die;
      printResults();
?>

2 个答案:

答案 0 :(得分:3)

使用connection_aborted函数。

答案 1 :(得分:1)

通常,如果用户断开连接,PHP(作为apache模块)应自动停止。没有必要工作。

如果您感兴趣:如果您希望PHP继续处理,则有ignore_user_abort()函数。您应该开始阅读手册页,特别是注释,以了解如何使用它以及可能出现的问题。