发送响应后继续 PHP 处理
您的 PHP 脚本从服务器接收数据,处理它并生成响应。但是,您面临一个问题,即需要立即将响应发送到服务器,但之后还需要进行额外的处理。
使用输出缓冲和 FastCGI 的解决方案
要让 PHP 在发送响应后继续处理,可以采用以下解决方案:
- 启用忽略用户中止:ignore_user_abort(true); (可选)
- 设置无限制的时间限制:set_time_limit(0);
- 使用输出缓冲提前发送响应:ob_start();
- 发送响应并设置适当的标题: echo $response;接下来是 header('连接:关闭'); and header('Content-Length: '.ob_get_length());;
- 刷新输出缓冲区:ob_end_flush(); @ob_flush(); lush();
- 对于在 PHP-FPM 上运行的高于 5.3.3 的 PHP 版本,完成请求:fastcgi_finish_request();
- 继续进行其他处理。
- 结束脚本:die(); (如果使用 set_time_limit(0),则尤为重要)
此方法将释放与 Web 服务器的连接,同时允许 PHP 继续执行并执行所需的响应后处理。
以上是发送响应后如何继续 PHP 处理?的详细内容。更多信息请关注PHP中文网其他相关文章!