3

我目前正在尝试从 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 被编写为从 .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');

这没有成功。(我目前正试图让它在我的本地主机上工作,以防万一..)

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

我已经看到了与这个类似的线程,所以我希望我不会再问任何东西;我找不到与这种情况完全相关的线程。

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

4

1 回答 1

6

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

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

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

于 2012-11-19T01:41:48.697 回答