0

我在 php 中寻找可以在变量中给出系统命令的输出(原始)以及返回码的东西。

  • exec这样做,但输出在数组中,因此返回的数据不正确(如\n新索引中的数据)。
  • system在输出流中输出数据,而不是在变量中。
  • shell_exec不给出返回值,但给出原始数据。
4

1 回答 1

3

听起来您正在寻找输出缓冲:

ob_start();
system($command, $returnCode);
$output = ob_get_clean();

这应该保留每个输出行末尾的所有空白字符(exec正如您所写的那样会破坏这些,因此implode不是一个选项)。

或者,您可以打开一个进程并获取管道(标准输出,STDOUT)并从中读取输出。但它更复杂(但给你更多的选择)。见proc_open

于 2012-02-02T09:32:43.740 回答