首页 > 后端开发 > php教程 > 发送HTTP响应后如何执行PHP代码?

发送HTTP响应后如何执行PHP代码?

Susan Sarandon
发布: 2024-12-30 22:19:11
原创
703 人浏览过

How Can I Execute PHP Code After Sending an HTTP Response?

响应调度后执行 PHP

PHP 脚本经常需要在响应服务器请求后进一步处理数据。其中一种场景涉及处理传入消息参数(“ID_OF_MESSAGE”和“TEXT_OF_MESSAGE”)并生成带有“ANSWER_TO_ID”和“RESPONSE_MESSAGE”参数的响应。

但是,向服务器发送 HTTP 200 响应将立即标记在服务器端传递的消息。这带来了一个困境,因为立即响应生成至关重要。

要克服这个问题,您可以:

ignore_user_abort(true); //optional
set_time_limit(0);

ob_start();
// Handle initial processing
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 processing after request dispatch
die(); // Ensure script termination
登录后复制

通过设置ignore_user_abort()和set_time_limit(0),脚本可以无限期地继续执行。 ob_* 函数立即发送响应标头和正文。 die() 语句终止脚本,这是防止使用 set_time_limit(0) 时无限执行所必需的。

此技术允许您处理传入请求、发送响应并继续处理 PHP 脚本,而无需等待让浏览器收到完整的响应。

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

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