我有一个需要很长时间才能加载的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();
?>
答案 0 :(得分:3)
使用connection_aborted函数。
答案 1 :(得分:1)
通常,如果用户断开连接,PHP(作为apache模块)应自动停止。没有必要工作。
如果您感兴趣:如果您希望PHP继续处理,则有ignore_user_abort()
函数。您应该开始阅读手册页,特别是注释,以了解如何使用它以及可能出现的问题。