在没有cronjobs的情况下在后台运行繁重的php文件


Running heavy php file in background without cronjobs

提交表单后,如何在后台运行php文件。加载必须在后台进行,因为通常需要很长时间。

基本上,这就像运行cronjob一样,只是我想手动触发它并使用浏览器。

有几种可能的方法。

  1. 尝试在脚本中将ignore_user_abort设置为TRUE
    如果更改为TRUE,脚本将不会在客户端中止连接后终止

  2. 看看popen()pclose()。你可以这样做:

    pclose(popen("start php /path/to/myscript.php", "r"));

  3. 您可以通过system()exec()调用启动一个单独的PHP进程。类似这样的东西:

    system('php /path/to/myscript.php >/dev/null 2>&1 &');

使用AJAX启动请求。浏览器将在等待响应时继续运行。当请求完成时,您甚至可以显示一个弹出窗口或一些信息,尽管您不必这样做。