我有一个调用 svnlook 的简单 php exec 命令。如果我通过终端运行命令,我会得到我期望的所有输出。如果我按如下所示运行它,我只会得到最后一项。
$list = exec("svnlook changed -r ".$urlCleaned." ".$SVNEXPORT);
echo $list;
我可以缓冲输出吗?如果有怎么办?那会有帮助吗?
这是设计使然,解释如下:
string exec ( string $command [, array &$output [, int &$return_var ]] )
返回值
命令结果的最后一行。如果您需要执行命令并将命令中的所有数据直接传回而不受任何干扰,请使用该
passthru()
功能。要获取执行命令的输出,请务必设置并使用输出参数。
http://php.net/manual/en/function.exec.php
exec("svnlook changed -r ".$urlCleaned." ".$SVNEXPORT, $output);
var_dump($output);
或者,shell_exec
返回所有内容。