php教程|PHP源码
最近都在使用 Git@OSC 代码托管,分享一个php写的获取git仓库信息的类
php教程-PHP源码
这个类可以获取信息的一个Git仓库。
小程序同城源码无后门,从ubuntu到ros,vapor4 爬虫,信息提交php,鄞州seolzw
它使用的Git客户端程序查询库来获得某些类型的统计信息。
企业号 源码,ubuntu下怎么翻墙,tomcat本地持续集成,django爬虫效率,php网页开发教程学习,摘要 seolzw
目前,它可以得到所有提交给定的分支,得到的最新提交的哈希,一个给定的分支的数量提交并获得一个给定的分支版本。
dashboard 源码,vscode拖拉引入文件,ubuntu的游戏,tomcat设置访问首页,粉色爬虫宠物,php 数组查找键值,山东seo优化哪家有名,html5 珠宝网站,清新城市地方门户discuz模板lzw
测试类
get_repos("/home/git/projects.list");if(isset($_GET[git]) && in_array($_GET[git], $repos) && file_exists($repo_path.$_GET[git]."/refs/heads/master")) { if(isset($_GET[header]) && !empty($_GET[header]) && file_exists($repo_path.$_GET[git]."/refs/heads/".$_GET[header])) { $header=$_GET[header]; } else { $header="master"; } echo $git->get_version($repo_path.$_GET[git], $header);} else { echo "404 Not Found - No such project";} ?>
git类
get_age($opt[3]); } }}$data[] = $commit; } } return $data; } /*** get latest commit hash** @param string $repo* @param string $branch* @raturn string*/ public function get_hash ($repo, $branch = "master") { $hash = shell_exec(git --git-dir=.$repo. rev-list -n 1 --pretty="format:%h" --header .$branch. | grep "^[0-9a-f]*$"); $hash = str_replace("\r","",str_replace("\n","",$hash)); return $hash; } /*** get commit count** @param string $repo* @param string $branch* @raturn string*/ public function get_count ($repo, $branch = "master") { $count = shell_exec(git --git-dir=.$repo. rev-list --oneline --first-parent --header .$branch. | wc -l | sed "s/[ \t]//g"); $count = str_replace("\r","",str_replace("\n","",$count)); return $count; } /*** get commit version** @param string $repo* @param string $branch* @raturn string*/ public function get_version ($repo, $branch = "master") { return "git-".$this->get_count($repo, $branch)."-".$this->get_hash($repo, $branch); } /*** get commit age** @param string $age* @raturn string*/ public function get_age($age) { $age= time() - $age; if ($age > 60*60*24*365*2) { $age_str = floor($age/60/60/24/365); $age_str .= " years ago"; } else if ($age > 60*60*24*(365/12)*2) { $age_str = floor($age/60/60/24/(365/12)); $age_str .= " months ago"; } else if ($age > 60*60*24*7*2) { $age_str = floor($age/60/60/24/7); $age_str .= " weeks ago"; } else if ($age > 60*60*24*2) { $age_str = floor($age/60/60/24); $age_str .= " days ago"; } else if ($age > 60*60*2) { $age_str = floor($age/60/60); $age_str .= " hours ago"; } else if ($age > 60*2) { $age_str = floor($age/60); $age_str .= " min ago"; } else if ($age > 2) { $age_str = $age; $age_str .= " sec ago"; } else { $age_str = "right now"; } return $age_str; } /*** get repo list from projects.list file** @param string $path* @raturn array*/ public function get_repos ($path) { $repo_list = file_get_contents($path); $repo_list = explode("\n", $repo_list); $data = array(); foreach($repo_list as $id => $repo) { $test = explode(" ",$repo); $data[] = $test[0]; } return $data; }}?>