本文实例为大家分享了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);

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

时间: 2019-09-16

统计php 代码行数,PHP实现统计代码行数小工具相关推荐

  1. 80行代码自己动手写一个表格拆分与合并小工具(文末附工具下载)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 瑶池阿母绮窗开,黄竹歌声动地哀. ...

  2. php自动轮播图代码,教你纯代码实现wordpress主题幻灯片轮播图片功能小工具

    class Yu_banner extends WP_Widget { //继承了 WP_Widget 这个类来创建新的小工具(Widget) function Yu_banner() { // 主要 ...

  3. php最短的代码实现爱情,WordPress Shortcode(短代码):完全指南

    WordPress短代码的使用非常简单.比如说我们想显示给定的最新文章,我们可以使用类似下面的代码: 1 [ recent - posts ] 再进一步的,我们可以通过设定一个参数来控制现实的文章的数 ...

  4. 【python】一个目录里面多个python程序文件,统计一下里面有多少行代码。即分别列出:代码、空行、注释的行数。

    一个目录里面多个python程序文件,统计一下里面有多少行代码.即分别列出:代码.空行.注释的行数. 题目 代码 结果 题目 一个目录里面多个python程序文件,统计一下里面有多少行代码.即分别列出 ...

  5. java判断一个文件有多少行_Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)...

    要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...

  6. linux 合计文件大小,linux下对符合条件的文件大小和行数做汇总统计的简单命令...

    (1)统计当前目录下的 *txt 文件 du -c -h *txt (2)统计当前目录下的 *txt 文件, 并求出总大小 du *txt |awk 'BEGIN{count=0;size=0;} \ ...

  7. java 统计文本行数_统计文本文件的行数,单词书,字节数

    [java]代码库import java.io.*; /** * 统计文本文件的行数,单词书,字节数 */ class WordCount { public static int words = 1; ...

  8. c语言统计行数单词数字符数,C语言统计字数行数单词数的程序

    代码可自由使用 一个统计文本字符数.单词数.行数的C语言程序 //注意输入的文本要以| 结尾 #include #include #define STOP '|' int main(void) { c ...

  9. 《统计学习方法》读书笔记——感知机(原理+代码实现)

    传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...

  10. 网站分析平台:百度统计、谷歌统计、网数星,统计平台怎样选择?

    当你拥有个人博客或个人网站时,你一定需要一个平台来分析你的网站状况.之前我在法国只是使用 Google Analytics,后来回国发现这个平台在国内受限制了,于是我找到了百度统计,目前我同时使用这三 ...

最新文章

  1. 高通的专利霸权要到头了?
  2. 从零开始入门 K8s | Kubernetes 存储架构及插件使用
  3. php 对象方法作为参数,在C++中对象如何作为参数传递和返回?(代码示例)
  4. Faster-RCNN算法精读
  5. Spring自动装配Beans
  6. php curl上传文件返回false,php curl上传文件$_FILES为空的问题
  7. Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
  8. DOM(二)——修改内容、属性、样式
  9. 实用juniper SRX NAT小技巧。
  10. python 排列组合_Python计算生态jieba库和random库的综合运用之爬山篇
  11. (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数
  12. Mac如何关闭触控板防止误触?内置的设置就可以达成
  13. imagemagick:a gentle introduction to magick++
  14. 目标客户画像_怎么进行目标人群的用户画像分析 - 爱盈利
  15. jpg格式的图片怎么压缩呢?手把手教你快速压缩jpg图片的大小
  16. php中thead怎么居中,html thead标签怎么用
  17. 打开WORD文档出错提示
  18. 程序员 谨防猝死
  19. 百度、微博的大数据算法Top10热搜怎么实现?
  20. python神经网络分析案例_python神经网络实战

热门文章

  1. Altium Designer 18安装教程
  2. 豆瓣电影、纪录片、书籍......下载神器
  3. 多重网格、自适应网格和无网格
  4. Eclipse安装包 百度网盘
  5. qq2008珊瑚虫版SL
  6. DotPass for Mac(密码生成器)
  7. 解读云计算的8项核心技术
  8. 三天研读《中兴电路设计规范》精华总结
  9. catia装配体怎么把零件旋转180度_工件180度翻转装置的设计
  10. linux Rootkit检查