我需要在后台运行第二个PHP文件.问题是此文件只需在当前文件完成后运行20秒.我已经使用exec(“PHP test_script.PHP”)来运行该文件,但我无法让它等待.如果我使用sleep()如果暂停我当前的脚本.
更具体一点.我正在将文件上传到远程服务器.然后,我需要在完成上传后等待大约20秒,以检查服务器是否有响应.与此同时,我想继续使用当前文件.第二个文件将执行后台所需的操作.目前我必须等待然后运行第二个文件.
解决方法:
最简单的解决方案是be found here.基本上,执行你的脚本如下:
exec('test_script.PHP >/tmp/output.txt &');
注意最后的&符号(‘&’),这将使命令在后台运行!您可以通过在test_script.PHP中添加sleep来将脚本延迟20秒.
您的其他选择是通过客户端的Javascript(AJAX)触发第二个脚本;或者让一个进程在后台运行(或定期通过cron作业),它正在检查某些类型的公共数据(例如数据库)以获取请求,并且如果需要处理这样的请求,它将变为活动状态.
如果脚本必须运行,则JavaScript不是一个选项,因为用户可能决定离开您的页面,或者不执行JavaScript,或者是恶意的,并决定不执行特定的JavaScript.