PHP如何实现统计代码行数?下面这篇文章就主要为大家详细介绍了PHP实现统计代码行数小工具,具有一定的参考价值,需要的朋友就来一聚教程网参考一下吧!
本文实例为大家分享了PHP实现统计代码行数小工具,供大家参考,具体内容如下
为了方面统计编程代码行数,做了一个小工具。
自动统计指定目录以及目录下的所有文件。
0; $i -= 1) { $line = $lines[$i]; if ($line != "") break; $lineCount -= 1; //最后几行是空行的要去掉。 } unset($fileContent); unset($lines); $totalCodeInfo = new TotalCodeInfo(); $totalCodeInfo->setFileCount(1); $totalCodeInfo->setLineCount($lineCount); return $totalCodeInfo; } /** * 统计当前目录下(含子目录) * 有多少文件,以及多少行代码 * * totalInfo = array( "fileCount"=>?, "lineCount"=>? ); * * @return TotalCodeInfo */ public function totalByDir($dirName) { $fileList = scandir($dirName); $totalCodeDir = new TotalCodeInfo(); foreach ($fileList as $fileName) { if ($fileName == "." || $fileName == "..") continue; $fullFileName = $dirName . "/" . $fileName; if (is_file($fullFileName)) { $totalCodeSub = $this->totalByFile($dirName . "/" . $fileName); } else if (is_dir($fullFileName)) { $totalCodeSub = $this->totalByDir($dirName . "/" . $fileName); } else { $totalCodeSub = new TotalCodeInfo(); } $totalCodeDir->increaseByOther($totalCodeSub); } return $totalCodeDir; } public function totalByDirOrFile($dirOrFileName) { if (is_dir($dirOrFileName)) { return $this->totalByDir($dirOrFileName); } else if (is_file($dirOrFileName)) { return $this->totalByFile($dirOrFileName); } else { return new TotalCodeInfo(); } } public function test() { $re = $this->totalByDir("/export/www/pm_web/configs"); var_dump($re); } public function main($dirList) { $totalCodeAll = new TotalCodeInfo(); foreach($dirList as $dirName) { $totalCodeSub = $this->totalByDirOrFile($dirName); $totalCodeAll->increaseByOther($totalCodeSub); } print_r($totalCodeAll); } } class TotalCodeInfo { private $fileCount = 0; private $lineCount = 0; public function getFileCount() { return $this->fileCount; } public function getLineCount() { return $this->lineCount; } public function setFileCount($fileCount) { $this->fileCount = $fileCount; return $this; } public function setLineCount($lineCount) { $this->lineCount = $lineCount; return $this; } /** * 累加 */ public function increaseByOther($totalCodeInfo) { $this->setFileCount( $this->fileCount + $totalCodeInfo->getFileCount()); $this->setLineCount( $this->lineCount + $totalCodeInfo->getLineCount()); return $this; } } $dirList = array(); $dirList[] = "/your/path"; $obj = new TotalCode(); $obj->main($dirList);
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔