php的统计代码行数

<?php
// 行数
$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:\phpstudy\WWW");
// 打印行数
echo $line;
?>

猜你喜欢

转载自blog.csdn.net/Mr_Yanghao/article/details/84976448