打开和关闭firefox导航器的PHP脚本

时间:2013-10-25 23:21:54

标签: php function firefox exec

我尝试做一个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杀死。

请尽快得到你的帮助。

您好。

1 个答案:

答案 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等待程序关闭。