PHP封装遍历文件夹下所有文件函数

不管是在工作中还是在面试中,都会遇到遍历一个文件的需求,这里记录一下,封装遍历文件夹中文件和文件夹的函数

<?php
function my_dir($dir) {
    $files = array();
    //注意这里要加一个@,不然会有warning错误提示:)
    if(@$handle = opendir($dir)) { 
        while(($file = readdir($handle)) !== false) {
            if($file != ".." && $file != ".") { //排除根目录;
                if(is_dir($dir."/".$file)) { 
                     //如果是子文件夹,就进行递归
                    $files[$file] = my_dir($dir."/".$file);
                } else { 
                    //不是就将文件的名字存入数组;
                    $files[] = $file;
                }
            }
        }
        closedir($handle);
        print_r($files);
        return $files;
    }
}

//输出结果:
Array
(
    [0] => aaa.html
)
Array
(
    [0] => c.html
    [1] => b.html
    [abc] => 
)

或者下面的函数,根据需求可以灵活改动

<?php

function my_dir2($dir_path) {
     if(is_dir($dir_path)) {
         $dirs = opendir($dir_path);
         if($dirs) {
             while(($file = readdir($dirs)) !== false) {
                 if($file !== '.' && $file !== '..') {
                     if(is_dir($file)) {
                          echo $dir_path . '/' . $file; echo PHP_EOL;
                         my_dir2($dir_path . '/' . $file);
                    } else {
                         echo $dir_path . '/' . $file; echo PHP_EOL;
                     }
                }
             }
             closedir($dirs);
        }
     } else {
         echo '目录不存在!';
     }
 }
 
 //输出结果:
/home/www/aaa/bbb/c.html
/home/www/aaa/bbb/b.html
/home/www/aaa/bbb/abc
发布了31 篇原创文章 · 获赞 27 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Hjingeng/article/details/103698720
今日推荐