如何获取php函数exec执行命令后的输出结果
项目开发中,遇到需要在PHP里用exec执行svn命令,需要知道执行后的结果。
代码如下:
$return = exec("svn import -m 'add file' 1.txt http://xxxxx/1.txt");
var_dump($return);
执行结果如下:
svn: 路径 “http://xxxxx/1.txt” 已经存在
string(0) ""
可以看到return变量为空,svn命令的输出并没有给到return变量上。
查了下手册exec的说明,修改代码如下:
exec("svn import -m 'add file' 1.txt http://xxxxx/1.txt", $return);
var_dump($return);
执行结果如下:
svn: 路径 “http://xxxxx/1.txt” 已经存在
array(0) {
}
好奇怪,return还是空的。
搜索了一番,正确的代码应该是:
exec("svn import -m 'add file' 1.txt http://xxxxx/1.txt 2>&1", $return);
var_dump($return);
执行结果如下:
array(1) {
[0]=>
string(88) "svn: 路径 “http://10.182.23.34:53021/1251100188/xxx/xxxxxx/test3.txt” 已经存在"
}