我在这里看到了很多建议使用但此代码不是必需的响应。所有这一切都是为了确保在用户中止的情况下发送响应之前,脚本继续执行(通过关闭浏览器或按 esc 停止请求)。但这不是你要问的。您要求在发送响应后继续执行。您所需要的只是以下内容:ignore_user_abort(true);
// Buffer all upcoming output...
ob_start();
// Send your response.
echo "Here be response";
// Get the size of the output.
$size = ob_get_length();
// Disable compression (in case content length is compressed).
header("Content-Encoding: none");
// Set the content length of the response.
header("Content-Length: {$size}");
// Close the connection.
header("Connection: close");
// Flush all output.
ob_end_flush();
@ob_flush();
flush();
// Close current session (if it exists).
if(session_id()) session_write_close();
// Start your background work here.
...
如果您担心后台工作所需的时间会超过PHP的默认脚本执行时间限制,请坚持使用顶部。set_time_limit(0);