【问题标题】:Executing an .exe file via PHP通过 PHP 执行 .exe 文件
【发布时间】:2015-01-31 21:32:16
【问题描述】:

我有以下问题:

我在 Windows 7 x64 机器上运行 XAMPP Apache 服务器,我想远程访问该机器,然后在其上执行程序。 现在我在 htdocs 目录中有两个文件,index.php 和 test.php。

index.php:

  <a href="test.php">Click here</a> 

test.php:

    <?php
exec("C:\\xampp\\htdocs\\notepad.exe");
?> 

index.php 打开了 test.php,但这就是我卡住的地方。 浏览器现在没有响应,只是显示“等待 localhost”,直到超时。

我花了几个小时试图找出问题所在,但没有任何帮助。

【问题讨论】:

  • 网络服务器未以登录控制台的同一用户身份运行。它无法运行像NotePad 这样的交互式图形程序。
  • 是的!我终于弄明白了,谢谢!在任务管理器中勾选“为所有用户显示进程”框后,我运行了 20 个 notepad.exe。是的!我只是个白痴。

标签: php apache xampp exec


【解决方案1】:

正如 PHP EXEC 页面上的 cmets 所述,您应该将其作为后台进程运行,否则它将等待结果。

我知道您要求 Windows,但是如果您使用其他东西,这将使移植更容易。尽管使用exe 文件似乎很难,但可能用于其他用途。我猜“notepad.exe”只是一个例子,并不是你真正想要运行的。

<?php
function execInBackground($cmd) {
    if (substr(php_uname(), 0, 7) == "Windows"){
        pclose(popen("start /B ". $cmd, "r")); 
    }
    else {
        exec($cmd . " > /dev/null &");  
    }
}
?>

【讨论】:

    【解决方案2】:

    正如 PHP EXEC 页面上的 cmets 所述,您应该将其作为后台进程运行,否则它将等待结果。

    我知道您要求 Windows,但是如果您使用其他东西,这将使移植更容易。尽管使用 exe 文件似乎很难,但可能用于其他用途。我猜“notepad.exe”只是一个例子,并不是你真正想要运行的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      相关资源
      最近更新 更多