我目前正在尝试从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界面,然后调用我已经给出的可执行文件(上面提到的命令行指令给了我,并为用户生成了一个带有处理数据的输出文件。
答案 0 :(得分:5)
基本的PHP语法错误:您使用的是错误的引号。改为使用双引号。
exec("C:\wamp\www\web_dev\test\my_program.exe $argument");
^--- ^---
单引号('
)不会将变量插入到字符串中。您试图传递文字$
,a
等作为参数,而不是该变量的值。