我正在编写一个PHP-GTK Twitter客户机,在进行OAuth身份验证时,我需要打开浏览器向用户显示带外令牌。我还需要有一个对话框打开,并在此期间为用户输入该令牌操作。
问题是,在Linux上,当我用xdg-open URL打开浏览器时,PHP似乎会暂停,直到我关闭浏览器窗口。我需要PHP来启动浏览器,然后打开对话框。我可以让PHP只执行命令,然后继续执行脚本吗?
发布于 2011-10-14 06:27:24
在*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参数是阻止它阻塞的部分。
https://stackoverflow.com/questions/7761112
复制相似问题