我想运行一个 php 脚本,它会发送一堆电子邮件(通讯),但由于它可能需要一段时间才能运行,我希望用户立即被重定向到一个页面,其中包含类似“您的通讯已排队等待”的消息送出。”
到目前为止,标头重定向有效,但直到所有电子邮件都发送完毕后才会导致重定向。我可以在发送重定向后关闭连接,以便浏览器立即执行重定向吗?我试过这样的东西
ob_start();
ignore_user_abort(true);
header( "refresh:1;url=waitforit.php?msg=Newsletters queued up, will send soon.");
header("Connection: close");
header("Content-Length: " . mb_strlen($resp));
echo $resp;
//@ob_end_clean();
ob_end_flush();
flush();
各种排列组合,但无济于事。我怀疑它不能这么简单,但在我开始搞乱 cron 作业或自定义守护进程之前,我想我会研究这种方法。谢谢
例如,就像下面的笨蛋建议的那样,但没有运气
ob_start();
ignore_user_abort(true);
header( "refresh:1;url=mailing_done.php?msg=Newsletters queued for sending.");
header("Connection: close");
header("Content-Length: 0" );
//echo $resp;
ob_end_flush();
flush();