<?php header('Content-Type: text/html; charset=utf-8'); $path = './'; $list = readDirsNested($path); echo '<pre>'; print_r($list); /** * @param 目录地址 */ function readDirsNested($path) { $nested = array();//存储当前目录下所有的文件 $dir_handle = openDir($path); while(false !== $file=readDir($dir_handle)) { if ($file=='.' || $file=='..') continue; //创建当前文件信息 $fileinfo = array(); // $fileinfo['name'] = $file; $fileinfo['name'] = iconv('gbk', 'utf-8', $file); //判断当前是否为目录 if(is_dir($path . '/' . $file)) { //是目录 $fileinfo['type'] = 'dir'; $func_name = __FUNCTION__; $fileinfo['nested'] = $func_name($path . '/' . $file); } else { //是文件 $fileinfo['type'] = 'file'; } //存入$nested数组内 $nested[] = $fileinfo; } closeDir($dir_handle); return $nested; }