PHP:执行命令,然后继续?

时间:2011-10-13 22:19:26

标签: php linux php-gtk

我正在编写一个PHP-GTK Twitter客户端,当我进行OAuth身份验证时,我需要打开一个浏览器向用户显示带外令牌。在此期间,我还需要打开一个对话框,以便用户输入该令牌。

问题是,在Linux上,当我用xdg-open URL打开浏览器时,PHP似乎暂停,直到我关闭浏览器窗口。我需要PHP来启动浏览器,然后打开对话框。我可以让PHP只执行命令并继续使用脚本吗?

1 个答案:

答案 0 :(得分:3)

在* nix上,您可以使用&运算符启动外部程序并继续(即不阻止)。您还必须将STDOUT和STDERR重定向到某个位置才能使其正常工作。

所以你会做这样的事情:

exec("xdg-open \"$url\" > /dev/null 2>&1 &");

还有一种方法可以在Windows上进行,我会在找到它时添加它。

修改

您可以使用以下代码段实现Windows的相同功能:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run($commandToExecute, 0, FALSE);

第二行传递的FALSE参数是阻止它阻止的部分。