我正在使用localhost WAMP Server,我想直接从浏览器执行.exe(用命令行控制AIMP播放器) 我一直在尝试所有PHP函数来执行此操作,但它们都没有执行.exe文件。
使用exec(),我可以调用“java -jar”或启动.bat,但每次尝试.exe文件都会失败(即使我在PHP中调用了一个启动.exe本身的java应用程序)。 / p>
额外信息: 安全模式已禁用 PHP 5.3.13 Apache 2.2.22
你对我的问题有任何想法吗?
谢谢。
答案 0 :(得分:0)
我建议编写简单的函数直接从浏览器创建背景exec()
并设置一些输出 - 这可能会显示错误。所以:
function background_exec($command)
{
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen('start /B ' . $command, 'r'));
}
else {
exec($command . ' 2>&1 > /dev/null &');
}
}
如您所见,这些内容可以在 win 和 nix 下使用。在 win 下调用 WAMP 将是:
$command = 'C:\path_to_your_directory\program.exe > C:\path_to_your_directory\logfile.log';
background_exec($command);
这对我来说很好,但是,我从未遇到过以这种方式运行.exe
文件的问题。
答案 1 :(得分:-1)
我最终选择使用 websockets 来解决我的问题(使用Ratchet)。像这样,我可以从我的浏览器调用我的脚本,将我需要的参数传递给可执行文件。
CLI中的PHP似乎对.exe文件上的exec()没有任何问题。