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);