【问题标题】:PHP exec() and shell_exec() not outputting everythingPHP exec() 和 shell_exec() 没有输出所有内容
【发布时间】:2017-02-11 01:55:34
【问题描述】:

我正在尝试使用 PHP 中的 shell_exec() 从外部程序中获取某些详细信息。这是我要查询的内容:

$output = shell_exec('vanitygen.exe 1z');

在 Windows 的命令提示符下执行此操作时,它会返回以下信息:

难度:1353
图案:1z
地址:地址
私钥:private_key

但是,当使用 PHP shell_exec(和 exec)运行相同的命令时,只会返回这个:

图案:1z
地址:地址
私钥:private_key

有没有办法让 PHP 提供所有信息,包括“难度:1353”行?
谢谢。

【问题讨论】:

  • 我敢打赌缺少的输出在 STDERR 中。
  • 你是对的。

标签: php cmd shell-exec


【解决方案1】:

原来我想要的信息存储在 STDERR 中。
要获取此信息,您只需将其附加到 exec 查询的末尾:

2>&1

在这种情况下,这会将查询从:

$output = shell_exec('vanitygen.exe 1z');

$output = shell_exec('vanitygen.exe 1z 2>&1');

【讨论】:

  • 虽然这可能有点矫枉过正,但您也可以使用proc_open(),它允许您管理进程的所有 I/O 流。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 2016-03-29
  • 2019-09-26
相关资源
最近更新 更多