在php中ignore_user_abort和重定向?

我对这个人的设置非常相似:

PHP Background Processes

即一个非常长的脚本,最多需要10分钟.但是,我需要在脚本工作时调用脚本的人重定向回主页.换句话说,我需要用户体验是这样的:

>单击更新按钮
>脚本开始执行,最多可能需要10分钟
>用户立即重定向回主页

这只能使用PHP吗?我认为我需要

ignore_user_abort(true); 
set_time_limit(0);

但是如何重定向用户呢?我不能使用javascript,因为输出只会以很高的增量写入页面,我希望重定向是立即的.我可以使用标题吗?或者这会搞乱事情吗?

或者,我可以使用cron作业方法,但我没有做cron工作或运行PHP代码的经验(甚至可能吗?)

谢谢,
马拉

更新:
使用标头重定向不起作用 – 在脚本完成之前,页面将不会加载.但是,最终网络服务器超时并说“零大小的回复:无法检索到请求的URL”(尽管脚本继续运行).我想我唯一的选择就是遵循cron的工作理念.伊克!

最佳答案 我已经尝试了几种方法,似乎没有一种方法可行,我甚至尝试使用register_shutdown_function(),但也失败了.我猜你一直在做一个cron工作.

我只记得一些东西(但我没有测试过),你可以尝试这样做:

set_time_limit(0);
ignore_user_abort(true);

ob_start(); // not sure if this is needed

// meta refresh or javascript redirect

ob_flush(); // not sure if this is needed
flush();

// code to process here

exit();

不确定它是否有用,但你可以尝试一下.

点赞