一、利用scandir函数来遍历目录
scandir():扫描目录,显示文件夹内所有内容,返回数组,包括 . 与 ..
function bl_scandir($dirname){
$dirArr = scandir($dirname);
foreach($dirArr as $v){
//组合文件或文件夹的路径
$filename = $dirname.'\\'.$v;
if ($v != '.' && $v != '..'){
if (is_dir($v)){
bl_scandir($v)
} else {
echo $v;
}
}
}
}
二、利用glob()函数遍历目录
glob():扫描目录,以数组形式返回文件夹中的内容,返回的内容中已经包含了路径。参数1:要遍历的目录,可以指定返回的文件类型
//返回当前目录下的所有文件
eg:$dirarr = glob('./*');
//返回当前目录下的所有PHP文件
$dirarr = glob('./*.php');
function globDir($dirname,$type=''){
if ($type==''){
//返回所有类型的文件
$dirInfo = glob($dirname.'/*');
} else {
//返回$type类型的文件
$dirInfo = glob($dirname.'/*.'.$type);
}
foreach($dirInfo as $v){
因为返回的数组元素中已经包括了文件路径,所以不需要组合文件路径
if (is_dir($v)) {
globDir($v);
} else {
echo $v."<br/>";
}
}
}
三、以对象方式遍历目录
创建template目录的对象
$dir = dir('template');
while(($file = $dir->read()) !== false){
echo $file."<br/>";
}
四、同过opendir()、readdir()函数遍历目录
function bldir($dirname){
$dir = opendir($dirname);
while(($file = $readdir($dir)) !== false){
//组装文件夹和文件的路径
$filename = $dirname.'\\'.$file;
if ($file != '.' && $file !== '..') {
if (is_dir($filename)) {
bldir($filename);
} else {
echo $filename;
}
}
}
}