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

PHP: execute command, then continue?

提问人:soren121 提问时间:10/14/2011 更新时间:10/14/2011 访问量:818

问:

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

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

linux php-gtk

评论

0赞 Melsi 10/14/2011
多线程会 gr.php.net/pcntl 有任何帮助吗?我没有经验,不知道是容易还是好!

答:

3赞 DaveRandom 10/14/2011 #1

在 *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