如何获取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” 已经存在"
}

标签: PHP

添加新评论