2009-09-15 55 views

回答

5

为了永远运行PHP应用或直到PHP终止

ignore_user_abort(true); 

set_time_limit(0); 
+0

似乎不安全如果页面被频繁请求时,服务器可能有大量的是什么都不做的过程。 – rsman 2011-08-16 18:20:45

4

您可能会感兴趣由ignore_user_abort配置指令,和/或ignore_user_abort功能:

设置客户端断开 是否应该导致一个脚本被中止。

利用这一点,你可以:

  • 产生必须被发送到浏览器
  • 刷新输出,与flush和/或ob_flush
  • 呼叫ignore_user_abort页面的一部分(现在或之前)
  • 做一些更多的工作

用户的浏览器仍然可能会显示“等待”或“装载”,但页面的内容将被加载并显示 - 即使用户按下“停止”,你的脚本应该继续执行。

欲了解更多信息,有一个功能的指南页面上一个例子 - 你可以看看这篇文章:How to Use ignore_user_abort() to Do Processing Out of Band


当然,虽然这可以用于一些光工艺(如在页面的结束“清理”的东西,而尽可能快地显示它给用户),你仍然可以通过max_execution_time之类的限制。

所以,这是不应该被用于长/重计算的解决方案。