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;
?>

 

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