我执行长查询并花费很长时间, 我希望在该过程中重定向到另一个页面,并在我重定向到另一个页面时继续执行我的问题,查询停止执行... 例如:
$emails = array(1, 2, and so on to 100k for example);
我想发送到电子邮件并在发送到另一个页面时重定向,并告诉我发送了多少电子邮件
我尝试搜索问题而无法找到解决方案,或者我用错误的方式搜索
答案 0 :(得分:1)
你的问题是php是逐行执行的。因此,如果您在流程中间重定向,则其余部分将不会执行。
您可以编写发送电子邮件的scirpt。把它放到一个php文件中。比使用curl打开该文件,请务必添加一个短暂的超时(例如1秒)
要跟踪实际发送的电子邮件,您必须将这些电子邮件插入到数据库中,或创建包含所需数据的文件。即使在发送所有电子邮件之前,您仍需要等待总数。
答案 1 :(得分:0)
实际上,php逐行执行,并且在此过程中你无法重定向,因为这不会继续发送电子邮件的过程
解决问题的最佳方法是使用cron作业,如下所示:
构建将发送电子邮件的页面
构建一个每x次执行的新cron作业
在php代码中,您可以添加一个片段,当您点击发送按钮时,该片段将通过cron作业执行上一个文件
例如:
if(isset($_POST)){
//code to make a new file containing sending process
}