PHP 代码行数统计

<?php
// 行数
$line = 0;
// 需要统计的文件类型
$arr = array("php", "html", "css", "js");
// 过滤的文件夹
$filtering = array("ui", "dist", "style", "lib", "dist", "css","api");
// 遍历目录
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("E:\DCC\st");
// 打印行数
echo $line;
?>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章