<?php
header("Content-type: text/html; charset=utf-8");
include 'svnconf.php';
$target_dir = '/opt/wwwroot/svn/test/';
$cmd = "svn log --non-interactive --revision 16315 $target_dir --username $username --password $password 2>&1";
exec($cmd,$log_arr,$return);print_r($log_arr);
?>
在执行svn log命令查看某个版本(版本号16315)的svn日志,在终端执行没有问题。
[root@svntest]# /opt/app/php5-fastcgi/bin/php svncmd.php
Array
(
[0] => ------------------------------------------------------------------------
[1] => r16315 | huli| 2015-04-10 15:20:14 +0800 (五, 2015-04-10) | 1 行
[2] =>
[3] => 增加编辑 详情按钮
[4] => ------------------------------------------------------------------------
)
但是在网页执行却出现乱码
Array ( [0] => ------------------------------------------------------------------------ [1] => r16315 | huli | 2015-04-10 15:20:14 +0800 (Fri, 10 Apr 2015) | 1 line [2] => [3] => ?\229?\162?\158?\229?\138?\160?\231?\188?\150?\232?\190?\145 ?\232?\175?\166?\230?\131?\133?\230?\140?\137?\233?\146?\174 [4] => ------------------------------------------------------------------------ )查了下 需要设置脚本所在环境变量才可以正常显示
LANG=zh_CN.UTF8
为了方便而且不影响其他业务 可以在执行svn log之前加一段代码 putenv("LANG=zh_CN.UTF8");
然后再执行,乱码问题解决
Array ( [0] => ------------------------------------------------------------------------ [1] => r16315 | huli | 2015-04-10 15:20:14 +0800 (五, 2015-04-10) | 1 行 [2] => [3] => 增加编辑 详情按钮 [4] => ------------------------------------------------------------------------ )