用到的主要知识点有:便利目录(递归)和统计文件行数函数
//递归显示目录下所有的文件
<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>