ignore_user_abort
设置客户端断开连接时是否中断脚本的执行
PHP 4 及以上版本
ignore_user_abort() 函数用于设置脚本在客户端断开连接后是否继续执行。
当用户终止页面请求(如关闭浏览器或断开网络连接)时,默认情况下 PHP 脚本会中止执行。调用 ignore_user_abort(true) 可以让脚本忽略用户断开连接,继续执行直到脚本自然结束或显式终止。
bool ignore_user_abort ([ bool $value = NULL ])
$value (可选) — 如果设置为 true,表示忽略用户断开连接,脚本会继续执行;如果设置为 false,脚本会在用户断开连接时停止执行。如果不传入参数,则返回当前的设置状态。
返回之前的设置状态,true 表示忽略用户断开连接,false 表示不忽略。
<?php // 设置忽略用户断开连接,脚本会继续执行 ignore_user_abort(true); <p>// 脚本执行一个长时间任务<br> for ($i = 0; $i < 10; $i++) {<br> echo "正在执行任务步骤 $i...\n";<br> flush(); // 输出缓冲区内容,及时发送给客户端<br> sleep(3);<br> }<br> echo "任务完成。";<br> ?><br>
以上示例中,调用 ignore_user_abort(true) 后,即使用户关闭浏览器或断开连接,PHP 脚本依然会继续执行循环中的任务步骤,直到所有步骤完成并输出“任务完成”。flush() 函数用于立即将输出发送给客户端,便于观察执行过程。