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