php如何实现递归遍历文件目录?

xiaoxiao2021-02-27  432

/** * 文件列表类 */ class dirListClass{ /** * 获取文件目录 * @param $dir 目录 */ public function getList($dir){ $list = $this->scandir_list($dir); $this->lists($list); } /** * 获取有深度的目录数组 * @param $dir * @return array|string */ private function scandir_list($dir){ $files = ''; if ($opendir = opendir($dir)) { while (($file = readdir($opendir)) !== false) { if ($file != '..' && $file != '.') { if (is_dir($dir . '/' . $file)) { $files[$file] = $this->scandir_list($dir . '/' . $file); $files['length'] = substr_count($dir . '/' . $file, '/'); } else { $files[] = $file; $files['length'] = substr_count($dir . '/' . $file, '/') - 1; } } } closedir($opendir); return $files; } } /** * 输出目录列表 * @param $list */ private function lists($list) { if (!empty($list)) {//print_r($list); $length = 0; foreach ($list as $key => $value) { if ($key == 'length') { $length = $value; continue; } if (isset($value['length'])) { $length = $value['length']; unset($value['length']); } if (gettype($key) == 'string') { for ($i = 0; $i < $length - 1; $i++) { echo '----'; } echo $key . "<br>"; $this->lists($list[$key]); } else { for ($i = 0; $i < $length; $i++) { echo '----'; } echo $value . "<br>"; } } } } }
转载请注明原文地址: https://www.6miu.com/read-907.html

最新回复(0)