【问题标题】:Execute an external program in php and return output file download link在php中执行一个外部程序并返回输出文件下载链接
【发布时间】:2013-06-14 09:33:01
【问题描述】:

我正在尝试通过接受一些参数并生成输出文件的 PHP 运行 file_creator.exe。那么如何获取输出文件的名称以生成下载链接?

【问题讨论】:

  • shell_exec 运行后返回执行结果
  • 查看proc_open() 以与进程交互。

标签: php exec output


【解决方案1】:

您需要在 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 实际读取它,或者它可以返回文件内容并将其写入磁盘,如您所愿。

【讨论】:

    【解决方案2】:

    请考虑Symfony Process library。使用它比像shell_execproc_open 这样的PHP 函数更容易和更安全。 Symfony Process 封装了这些功能并提供了额外的安全级别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      • 2017-08-15
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      相关资源
      最近更新 更多