首页 > 后端开发 > php教程 > 发送 HTTP 响应后如何继续执行 PHP 脚本?

发送 HTTP 响应后如何继续执行 PHP 脚本?

DDD
发布: 2024-12-14 03:44:15
原创
740 人浏览过

How Can I Continue PHP Script Execution After Sending an HTTP Response?

发送响应后继续执行 PHP

在 PHP 脚本接收传入消息、处理该消息并将响应发送到的场景中对于请求服务器,发送初始响应后需要继续执行 PHP 脚本。这变得具有挑战性,因为服务器通常在收到 HTTP 200 响应时将消息标记为已送达。

避免数据库存储和 Cron 作业

而不是诉诸于将消息存储在一个数据库并依赖一个 cron 作业,有一个更直接的解决方案。这涉及发送 HTTP 200 响应,然后继续执行 PHP 脚本。

PHP 脚本实现

要实现此解决方案,请在 PHP 脚本中执行以下步骤:

ignore_user_abort(true); // Not required but can prevent premature termination
set_time_limit(0);

ob_start();
// Perform initial processing here
echo $response; // Send the response
header('Connection: close');
header('Content-Length: '.ob_get_length());
ob_end_flush();
@ob_flush();
flush();
fastcgi_finish_request(); // Required for PHP-FPM (PHP > 5.3.3)

// Continue script execution
// ...

die(); // End the script especially when set_time_limit=0 is used and the task is complete
登录后复制

此代码序列允许脚本发送响应,但 PHP 进程继续运行。如果需要,您可以执行其他处理、任务或发送其他响应。最后调用 die() 来终止脚本并释放资源非常重要。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板