php递归获取指定目录下的指定类型文件

来自:互联网
时间:2020-03-10
阅读:

php递归获取指定目录下的指定类型文件代码片段

//php递归获取指定目录下的指定类型文件
public function getDirFile($dir, $suffix = '')
{
    public function getDirFile($dir, $suffix = '')
    {
        $suffix_array = explode(',', $suffix);
        $files = array();
        if (@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
            while (($file = readdir($handle)) !== false) {
                if ($file != ".." && $file != ".") { //排除根目录;
                    if (is_dir($dir . "/" . $file)) { //如果是子文件夹,就进行递归
                        $files[$file] = $this->getDirFile($dir . "/" . $file,$suffix);
                    } else { //不然就将文件的名字存入数组;
                        $item_suffix = pathinfo($file)['extension'];
                        if (in_array($item_suffix, $suffix_array)) {
                            $files[] = $file;
                        }
                    }
    
                }
            }
            closedir($handle);
        }
        return $files;
    }
}

使用方法:

getDirFile 这是方法放到你的类里面,然后调用,比如:

class Method
{
  //递归获取指定目录下的文件
    public function getDirFile($dir, $suffix = '')
    {
        $suffix_array = explode(',', $suffix);
        $files = array();
        if (@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
            while (($file = readdir($handle)) !== false) {
                if ($file != ".." && $file != ".") { //排除根目录;
                    if (is_dir($dir . "/" . $file)) { //如果是子文件夹,就进行递归
                        $files[$file] = $this->getDirFile($dir . "/" . $file,$suffix);
                    } else { //不然就将文件的名字存入数组;
                        $item_suffix = pathinfo($file)['extension'];
                        if (in_array($item_suffix, $suffix_array)) {
                            $files[] = $file;
                        }
                    }
    
                }
            }
            closedir($handle);
        }
        return $files;
    }
}

调用如下:

$root = $_SERVER ['DOCUMENT_ROOT'];
$method = new Method();
$tree = $method->getDirFile($root.'/wechart/view','php,html');
print_r($tree);
返回顶部
顶部