配置文件
- <?php
- //setup commandline
- $svn_cmd1 = 'svn.exe update ';
- $svn_cmd2 = ' --username xxx --password xxx ';
- $ftp_ip = '#########';
- $ftp_user = '#########';
- $ftp_pass = '#########';
- ?>
php获取svn文件,然后ftp上传服务器代码
- <?php
- require_once("config.php");
- // CONFIG dir
- $CONFIG_PG = 'E:\phpupdate\xxx';
- // svn上传文件列表
- $svnlist = array();
- $svnlist = updatesvn($svn_cmd1,$CONFIG_PG,$svn_cmd2);
- /*
- $svnlist[0]= 'A E:\XXXX\Lib\Action\XXXAction.class.php';
- $svnlist[1]= 'U E:\XXXXX\Action\XXXAction.class.php';
- $svnlist[2]= 'At revision 5625.';
- */
- $remoteArr = $svnlist; //ftp上传文件列表
- $localArr = $svnlist; //本地文件列表
- //输出svn信息
- svnMessage(&$remoteArr,&$localArr,$CONFIG_PG);
- //上传
- ftp_upload($ftp_ip,$ftp_user,$ftp_pass,$localArr,$remoteArr);
- /**
- * 上传svn更新
- */
- function updatesvn($svn_cmd1,$CONFIG_PG,$svn_cmd2)
- {
- //execute svn update command
- $cmd = $svn_cmd1 . $CONFIG_PG . $svn_cmd2;
- //echo 'Debug:'.$cmd. "<br />\r\n";
- $ar = array();
- $status = 0;
- exec($cmd, $ar, $status);
- if ( count($ar) <= 1 )
- {
- echo $ar[0];
- echo '<br>no upload file!';
- exit;
- }
- //print_r($ar);
- echo "Status: " .$status . "<br />\r\n";
- return $ar;
- }
- /**
- * 输出调试信息
- */
- function svnMessage($remoteArr,$localArr,$CONFIG_PG)
- {
- /*
- * local dir
- */
- for($ctr = 0;$ctr < count($localArr)-1; $ctr++)
- {
- //$localArr[$ctr] = str_replace ($CONFIG_FLG,'',$localArr[$ctr]);
- $istr = stripos($localArr[$ctr], $CONFIG_PG);
- $localArr[$ctr] = substr($localArr[$ctr],$istr);
- $localArr[$ctr] = str_replace ('\\','/',$localArr[$ctr]);
- }
- echo "本地路径:<br />\r\n";
- for($ctr = 0;$ctr < count($localArr)-1; $ctr++)
- {
- echo $localArr[$ctr];
- echo "<br />\r\n";
- }
- /*
- * remote dir
- */
- for($i = 0;$i < count($remoteArr)-1; $i++)
- {
- //$remoteArr[$i] = str_replace ($CONFIG_PG,'',$remoteArr[$i]);
- $imstr = stripos($remoteArr[$i], $CONFIG_PG);
- $remoteArr[$i] = substr($remoteArr[$i],$imstr+strlen($CONFIG_PG));
- $remoteArr[$i] = str_replace ('\\','/',$remoteArr[$i]);
- }
- echo "<br />\r\n上传路径:<br />\r\n";
- for($i = 0;$i < count($remoteArr)-1; $i++)
- {
- echo $remoteArr[$i];
- echo "<br />\r\n";
- }
- }
- /**
- * ftp上传脚本
- */
- function ftp_upload($ftp_ip,$ftp_user,$ftp_pass,$localPathArr,$remotePathArr)
- {
- $conn = ftp_connect($ftp_ip) or die("Could not connect");
- ftp_login($conn,$ftp_user,$ftp_pass);
- if ( count($localPathArr) == count($remotePathArr) )
- {
- for($i = 0;$i < count($localPathArr)-1; $i++)
- {
- // 开始
- $fp = fopen($localPathArr[$i], 'r');
- $ret = ftp_nb_fput($conn, $remotePathArr[$i], $fp, FTP_BINARY);
- while ($ret == FTP_MOREDATA)
- {
- // 加入其它要执行的代码
- echo "....";
- // 继续传送...
- $ret = ftp_nb_continue ($conn);
- }
- if ($ret != FTP_FINISHED)
- {
- echo "上传文件中发生错误...";
- exit(1);
- }
- }
- echo "..............................";
- echo "<br />\r\n OK! <br />\r\n";
- }
- else
- {
- echo "svn check error!<br />\r\n";
- }
- ftp_close($conn);
- }
- ?>
转载于:https://blog.51cto.com/linjin101/466337