我使用以下PHP代码来执行其中一个磁盘上的本地exe程序,我这样做是为了测试目的,看看本地文件执行如何在localhost系统(WAMP)上运行是否有差异。通常,代码片段和整个文件集将驻留在服务器端。
在我的情况下,PHP exec()函数表现不正常,如果我用C:/Windows/Notepad.exe
调用exec()然后它会在背景上激活记事本但没有任何内容可见,我知道记事本被执行的唯一方法是从任务管理器,在进程选项卡中生成另一个notepad.exe。
另一方面,如果我用'F:/File.exe'调用exec(),则没有任何迹象表明File.exe被执行(来自任务管理器),也没有产生预期的结果。我设置了所有文件权限,以保证我不受任何限制的阻碍。
<?php
$file = 'F:/File.exe';
if (file_exists($file)) echo 'File does exist :: ' . $file;
exec($file . ' 2>&1', $output);
//echo $output;
?>