显示指定目录下文件所有文件的行数和文件的个数

 用到的主要知识点有:便利目录(递归)和统计文件行数函数

 

//递归显示目录下所有的文件
<html>
 <head></head>
 <body>

<?php
$files=0;
$lines=0; 

$di="f:/AppServ/www/xwgl";

function countLines($file){       //统计文件的行数
   
    return count(file($file));
 
 }
 
function dirSize($directory){     //自定义一个函数

if($dir_handle=opendir($directory)){   //打开目录并判断是否能成功打开

 while($filename=readdir($dir_handle)){  //遍历目录下所有文件
  
  if($filename!="."&&$filename!=".."){      //排除两个特殊目录“.”和“..”
   
   $subFile=$directory."/".$filename;         //将目录下的子文件和当前面目录相连
   if(is_dir($subFile)){                                 //如果为目录

    dirSize($subFile);                                 //递归的调用自身,将新目录作为形参
   }
   else{
    global $files,$lines;                //在一个function中引入外部的一个变量,一般情况下,这个外部的变量不通过参数传进来,

                                                 // 而是直接 通过global 引入进来。 而这个global却又没有全局化的意思,就是说用global进行声明,

                                                   //则可以调用函数外的变量。
    
      $files++;
       $lines += countLines($subFile);    //调用统计行数函数
            
    }
   
   }
  
  }
 closedir($dir_handle);
 
 }
 
}

dirSize($di);

 echo "该目录共计".$lines."行,总计".$files."个文件...<br>";
?>


</body>
</html>

posted @ 2011-09-06 17:47  java简单例子  阅读(262)  评论(0编辑  收藏  举报