【问题标题】:PHP: execute command, then continue?PHP:执行命令,然后继续?
【发布时间】:2011-10-13 22:19:25
【问题描述】:

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

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

【问题讨论】:

  • 多线程有什么帮助吗gr.php.net/pcntl。没经验不知道好不好用!

标签: php linux php-gtk


【解决方案1】:

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

所以你会做这样的事情:

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

在windows上也有办法,找到了会补充的。

编辑

你可以使用下面的 sn-p 实现与 Windows 相同的功能:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2018-05-19
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 2015-05-28
    • 2021-11-07
    相关资源
    最近更新 更多