侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

PHP实现统计代码行数小工具

2022-06-27 星期一 / 0 评论 / 0 点赞 / 68 阅读 / 3102 字

本文实例为大家分享了PHP实现统计代码行数小工具,供大家参考,具体内容如下为了方面统计编程代码行数,做了一个小工具。自动统计指定目录以及目录下的所有文件。<php class TotalCode { /** * 统计当

本文实例为大家分享了PHP实现统计代码行数小工具,供大家参考,具体内容如下

为了方面统计编程代码行数,做了一个小工具。

自动统计指定目录以及目录下的所有文件。

.
<?php class TotalCode {  /** * 统计当前文件有多少行代码, * @return TotalCodeInfo */ public function totalByFile($fullFileName) { $fileContent = file_get_contents($fullFileName); $lines = explode("/n", $fileContent); $lineCount = count($lines);  for($i = $lineCount -1; $i > 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);
.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持..。

广告 广告

评论区