首页  >  文章  >  后端开发  >  如何在发送 HTTP 响应后保持 PHP 执行运行?

如何在发送 HTTP 响应后保持 PHP 执行运行?

Barbara Streisand
Barbara Streisand原创
2024-11-12 13:10:02596浏览

How Can I Keep PHP Execution Running After Sending an HTTP Response?

使用 mod_php 进行 HTTP 响应后继续执行 PHP

克服由于之前超时而导致 PHP 执行被调用应用程序终止的问题该脚本可以完成基本操作,可以利用 PHP 脚本中的特定技术

响应中止-恢复方法

提供的代码片段使用以下方法:

  1. 清除输出缓冲区并设置“Connection: close”标头以终止 HTTP 响应。
  2. 启用"ignore_user_abort" 防止 PHP 执行被客户端中断。
  3. 启动一个新的输出缓冲区。
  4. 将所需的消息回显到浏览器。
  5. 获取输出缓冲区并添加“Content-Length”标头以通知浏览器响应大小。
  6. 刷新两个输出缓冲区将响应发送给客户端。
  7. 关闭会话以释放 PHP 持有的资源。
  8. 在修改后的脚本中执行其他处理和操作。

实施细节

需要注意的是“ob_end_flush()”和“flush()”函数都需要按顺序调用,以便将响应传输到客户端。此外,一些用户报告称,通过添加“session_write_close()”来关闭 PHP 的会话管理资源,结果得到了改善。

通过实现此方法,PHP 脚本可以快速向等待的应用程序分派 HTTP 响应,并继续执行重要操作不会面临提前终止问题。

以上是如何在发送 HTTP 响应后保持 PHP 执行运行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn