统计php 代码行数,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);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间: 2019-09-16
统计php 代码行数,PHP实现统计代码行数小工具相关推荐
- 80行代码自己动手写一个表格拆分与合并小工具(文末附工具下载)
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 瑶池阿母绮窗开,黄竹歌声动地哀. ...
- php自动轮播图代码,教你纯代码实现wordpress主题幻灯片轮播图片功能小工具
class Yu_banner extends WP_Widget { //继承了 WP_Widget 这个类来创建新的小工具(Widget) function Yu_banner() { // 主要 ...
- php最短的代码实现爱情,WordPress Shortcode(短代码):完全指南
WordPress短代码的使用非常简单.比如说我们想显示给定的最新文章,我们可以使用类似下面的代码: 1 [ recent - posts ] 再进一步的,我们可以通过设定一个参数来控制现实的文章的数 ...
- 【python】一个目录里面多个python程序文件,统计一下里面有多少行代码。即分别列出:代码、空行、注释的行数。
一个目录里面多个python程序文件,统计一下里面有多少行代码.即分别列出:代码.空行.注释的行数. 题目 代码 结果 题目 一个目录里面多个python程序文件,统计一下里面有多少行代码.即分别列出 ...
- java判断一个文件有多少行_Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)...
要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...
- linux 合计文件大小,linux下对符合条件的文件大小和行数做汇总统计的简单命令...
(1)统计当前目录下的 *txt 文件 du -c -h *txt (2)统计当前目录下的 *txt 文件, 并求出总大小 du *txt |awk 'BEGIN{count=0;size=0;} \ ...
- java 统计文本行数_统计文本文件的行数,单词书,字节数
[java]代码库import java.io.*; /** * 统计文本文件的行数,单词书,字节数 */ class WordCount { public static int words = 1; ...
- c语言统计行数单词数字符数,C语言统计字数行数单词数的程序
代码可自由使用 一个统计文本字符数.单词数.行数的C语言程序 //注意输入的文本要以| 结尾 #include #include #define STOP '|' int main(void) { c ...
- 《统计学习方法》读书笔记——感知机(原理+代码实现)
传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...
- 网站分析平台:百度统计、谷歌统计、网数星,统计平台怎样选择?
当你拥有个人博客或个人网站时,你一定需要一个平台来分析你的网站状况.之前我在法国只是使用 Google Analytics,后来回国发现这个平台在国内受限制了,于是我找到了百度统计,目前我同时使用这三 ...
最新文章
- 高通的专利霸权要到头了?
- 从零开始入门 K8s | Kubernetes 存储架构及插件使用
- php 对象方法作为参数,在C++中对象如何作为参数传递和返回?(代码示例)
- Faster-RCNN算法精读
- Spring自动装配Beans
- php curl上传文件返回false,php curl上传文件$_FILES为空的问题
- Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
- DOM(二)——修改内容、属性、样式
- 实用juniper SRX NAT小技巧。
- python 排列组合_Python计算生态jieba库和random库的综合运用之爬山篇
- (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数
- Mac如何关闭触控板防止误触?内置的设置就可以达成
- imagemagick:a gentle introduction to magick++
- 目标客户画像_怎么进行目标人群的用户画像分析 - 爱盈利
- jpg格式的图片怎么压缩呢?手把手教你快速压缩jpg图片的大小
- php中thead怎么居中,html thead标签怎么用
- 打开WORD文档出错提示
- 程序员 谨防猝死
- 百度、微博的大数据算法Top10热搜怎么实现?
- python神经网络分析案例_python神经网络实战