PHP运行SVN命令显示某用户的文件更新记录的代码

  

复制代码 代码如下:

  <?php

  $user=trim($_GET['user']);

  $d=$_GET['date'];

  if(!$d){

  $d=date('Ymd',time()-86400*14);

  }

  if(empty($user)){

  echo "例如:svn_log.php?user=wang&date=20130118";

  exit;

  }

  $cmd='/usr/bin/svn log -v -r {'.$d.'}:"HEAD" --username 用户名 --password 密码 --no-auth-cache | sed -n "/'.$user.'/,/-----$/ p" 2>&1';

  $p=dirname(__FILE__);

  exec('cd '.$p,$output);

  exec($cmd,$output);

  $d=date('Y年m月d日',strtotime($d));

  echo $user.'自'.$d.'以来:<br>';

  echo '---------------------------------------------<br>';

  $out='';

  krsort($output);

  if(!empty($output)){

  foreach($output as $v){

  $p1=strpos($v,'/branch/');

  $p2=strpos($v,'/tg/');

  if($p1!==false || $p2!==false){

  if($p1!==false){

  $v=substr($v,$p1+9);

  }else{

  $v=substr($v,$p2+4);

  }

  if($out==''){

  $out=$v;

  echo $v.'<br>';

  }else{

  if(strpos($out,$v)===false){

  $out.=','.$v;

  echo $v.'<br>';

  }

  }

  }

  }

  }else{

  echo "没有文件";

  }

  ?>