使用PHP网页中的输入参数运行.exe

时间:2012-11-19 01:22:19

标签: php parameters exec exe

我目前正在尝试从PHP网页(目前使用exec())中运行可执行文件。从命令行运行时,程序采用两个参数;我不确定用PHP运行它的最佳方法是什么。

特别是,可以使用以下语法从命令行运行.exe:

my_program.exe input_file_name.txt / output_file_name.txt

程序处理输入文件中的数据并将处理后的数据放入输出文件中。这一切都可以从命令行(在Windows中)正常工作。 .exe是用Visual Basic编写的(它不是由我编写的)。

我知道我通常可以通过执行以下操作来提供exec()参数:

exec('my_program.exe "example input parameter"');

如果写入.exe是为了从argv()获取输入,我已经完成了测试。我试过了几件事:

$argument = "C:\wamp\www\web_dev\test\input.txt / C:\wamp\www\web_dev\test\output.txt";
exec('C:\wamp\www\web_dev\test\my_program.exe $argument');

哪个没效果。 (我正在努力让它在我的localhost上工作,如果相关的话......)

我相信,因为.exe完成了打开,写入和关闭输入和输出文件的所有工作,我只需要弄清楚如何编写将以适当的方式执行程序的PHP命令。

我见过类似的线索,所以我希望我不会再问什么了;我无法找到与这种情况相关的线程。

编辑:如果有帮助,我正在努力的整体范围是创建一个允许用户上传文件的Web界面,然后调用我已经给出的可执行文件(上面提到的命令行指令给了我,并为用户生成了一个带有处理数据的输出文件。

1 个答案:

答案 0 :(得分:5)

基本的PHP语法错误:您使用的是错误的引号。改为使用双引号。

exec("C:\wamp\www\web_dev\test\my_program.exe $argument");
     ^---                                              ^---

单引号(')不会将变量插入到字符串中。您试图传递文字$a等作为参数,而不是该变量的值。