我在 php 中寻找可以在变量中给出系统命令的输出(原始)以及返回码的东西。
exec
这样做,但输出在数组中,因此返回的数据不正确(如\n
新索引中的数据)。system
在输出流中输出数据,而不是在变量中。shell_exec
不给出返回值,但给出原始数据。
我在 php 中寻找可以在变量中给出系统命令的输出(原始)以及返回码的东西。
exec
这样做,但输出在数组中,因此返回的数据不正确(如\n
新索引中的数据)。system
在输出流中输出数据,而不是在变量中。shell_exec
不给出返回值,但给出原始数据。听起来您正在寻找输出缓冲:
ob_start();
system($command, $returnCode);
$output = ob_get_clean();
这应该保留每个输出行末尾的所有空白字符(exec
正如您所写的那样会破坏这些,因此implode
不是一个选项)。
或者,您可以打开一个进程并获取管道(标准输出,STDOUT)并从中读取输出。但它更复杂(但给你更多的选择)。见proc_open
。