我尝试做一个php脚本自动打开和关闭firefox(版本24.0)。代码是:
<?php
//opening firefox
exec('"C:\Program Files\Mozilla Firefox\firefox.exe"');
//Waiting a moment to let firefox charging
sleep(20);
//Closing firefox
exec("TASKKILL /IM firefox.exe /F");
?>
但我有一个问题,导航器成功打开,但它仍然打开很长时间,直到我关闭它manuelly然后它等待20秒,并告诉我没有processus firefox杀死。
请尽快得到你的帮助。
您好。
答案 0 :(得分:0)
问题是php exec()在继续编写脚本see here之前等待程序完成并关闭。要解决此问题,您可以使用类似于以下的方法:
<?php
function execInBackground($cmd) {
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
}
?>
(代码信用转到Arno van den Brink,请参阅链接页面上的评论部分。)
此函数确定操作系统是否为Windows,并使用正确的php命令执行程序,而不会导致php等待程序关闭。