自己在宿舍闲着没事,就用 PHP 写了个简单的统计代码行的方法。因为服务器端不能遍历本地目录,所以这个方法只能运行在本地,考虑到这个条件,也就没做界面,只实现了最基本的统计行数的功能,实现请看代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// 行数 $line = 0; // 需要统计的文件类型 $arr = array("php", "html", "css", "js", "tpl", "wxml", "wxss"); // 过滤的文件夹 $filtering = array("wamplangues", "ckeditor", "wampthemes", "wordpress", "dede", "thinkphp"); // 遍历目录 function bl_scandir($dirname) { global $arr; global $filtering; global $line; // 扫描目录下的文件和目录 $dirArr = scandir($dirname); // 遍历目录 foreach($dirArr as $v) { //组合文件或文件夹的路径 $filename = $dirname.'\\'.$v; // . 表示本层目录, .. 表示上层目录 if ($v != '.' && $v != '..') { // 判断是不是一个目录,是的话递归调用 if (is_dir($filename)) { // 过滤不需要统计的目录 if (in_array($v, $filtering)) { continue; } bl_scandir($filename); } else { // 截取后缀名 $extension = pathinfo($v,PATHINFO_EXTENSION); // 比较后缀名是否在统计的文件类型里 if (in_array($extension, $arr)) { // 打开文件 $fp = fopen($filename, r); // 读取行数 while(stream_get_line($fp,8192,"\n")) { $line ++; } // 关闭文件 fclose($fp); } } } } } // 执行方法,参数为项目路径 bl_scandir("G:\php\wamp\www"); // 打印行数 echo $line; |
原文链接:一个简单的 PHP 代码行数统计方法,转载请注明来源!