我需要在php的背景下运行一些网站网址(http://domain.com/user.php?id=uniquetoken)(注意:网站网址< / strong>包含html,php和javascript ajax请求)
我尝试了以下代码,但它无法正常工作。任何人都可以说这有什么问题,或任何替代解决方案。
exec("wget http://domain.com/user.php?id=uniquetoken > /dev/null 2>&1 &");
P.s:我真正需要的是,当用户访问某个网站时,即使他们关闭了浏览器,也必须完成一些后台处理过程。(因为后台处理过程需要2分钟以上才能完成)
答案 0 :(得分:2)
实际上,这不是最佳方式。我没有尝试过,但是当PHP进程终止时,它还会杀死你用 exec()开始的孩子。当用户取消页面加载时,它仍然会停止。
您应该设置后台进程(例如,PHP-CLI脚本),并设置一个机制,用于从网站请求中触发该进程。比方说,bg proc应检查db表中的新记录,如果有,则执行该作业,然后删除记录。网页PHP应该向其插入新的作业指令记录。
答案 1 :(得分:-2)
尝试file_get_contents("http://domain.com/user.php?id=uniquetoken");
。
PHP有一个名为'fopen url wrappers'的东西,它允许所有文件系统函数也使用HTTP和FTP之类的东西。