【发布时间】:2013-06-14 09:33:01
【问题描述】:
我正在尝试通过接受一些参数并生成输出文件的 PHP 运行 file_creator.exe。那么如何获取输出文件的名称以生成下载链接?
【问题讨论】:
-
shell_exec运行后返回执行结果 -
查看proc_open() 以与进程交互。
我正在尝试通过接受一些参数并生成输出文件的 PHP 运行 file_creator.exe。那么如何获取输出文件的名称以生成下载链接?
【问题讨论】:
shell_exec 运行后返回执行结果
您需要在 PHP (http://php.net/manual/en/function.shell-exec.php) 中使用 shell_exec() 函数来运行您的 exe 文件。在命令行中传入参数如:
<?php
$outputOfExecutable = shell_exec("C:\\path\\to\\cmd.exe /c C:\\batchfile.cmd");
?>
无论您的可执行文件在执行结束时返回什么,都会返回给您的 PHP 脚本。这意味着您的可执行文件应该返回它生成的文件的路径,以便您可以使用 PHP 实际读取它,或者它可以返回文件内容并将其写入磁盘,如您所愿。
【讨论】:
请考虑Symfony Process library。使用它比像shell_exec 或proc_open 这样的PHP 函数更容易和更安全。 Symfony Process 封装了这些功能并提供了额外的安全级别。
【讨论】: