2011-09-07 17 views
0

我有一个简单的PHP exec命令,调用svnlook。如果我通过终端运行命令,我会得到我期望的所有输出。如果我如下所示运行它,我只能得到最后一个项目。svnlook通过PHP给出一行

$list = exec("svnlook changed -r ".$urlCleaned." ".$SVNEXPORT); 
echo $list; 

我可以缓冲输出吗?如果是这样如何?这会有帮助吗?

回答

1

这是由设计,并解释说:

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回报的一切。