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