繁体   English   中英

结束HTTP请求后,PHP脚本是否可以继续运行?

[英]Can a PHP script continue running after ending the HTTP request?

即使刷新了一些文本并结束HTTP请求,我如何编写一个继续运行的PHP脚本? 这可能吗?

永远运行PHP应用程序或直到PHP终止

ignore_user_abort(true);

set_time_limit(0);

您可能对ignore_user_abort配置指令和/或ignore_user_abort函数ignore_user_abort

设置客户端断开连接是否应导致脚本中止。

使用此功能,您可以:

  • 生成必须发送到浏览器的页面部分
  • 刷新输出,使用flush和/或ob_flush
  • 调用ignore_user_abort (现在或之前)
  • 做更多的工作

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

有关更多信息,在该函数的手册页面上有一个示例 - 您可以查看本文: 如何使用ignore_user_abort()进行带外处理


当然,虽然这可以用于一些轻量级过程(如页面末尾的“清理”内容,同时尽可能快地向用户显示) ,但仍然会受到max_execution_time等的限制。

因此,这不是一个应该用于长/重计算的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM