0

我尝试做一个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");
?>

但是我有一个问题,导航器成功打开,但它仍然打开很长时间,直到我手动关闭它,然后它等待 20 秒并告诉我没有要杀死的进程 firefox。

请我尽快需要你的帮助。

你好。

4

1 回答 1

0

问题是 php exec() 等待程序完成并关闭,然后再继续执行脚本,请参见此处。为了解决这个问题,您可以使用类似于以下的方法:

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

于 2013-10-26T00:18:58.690 回答