mingche 发表于 2017-4-10 06:54:10

php获取某一目录包含的所有目录和文件

  <?php/*** 取得输入目录所包含的所有目录和文件* 以关联数组形式返回* author: flynetcn*/function deepScanDir($dir){$fileArr = array();$dirArr = array();$dir = rtrim($dir, '//');if(is_dir($dir)){$dirHandle = opendir($dir);while(false !== ($fileName = readdir($dirHandle))){$subFile = $dir . DIRECTORY_SEPARATOR . $fileName;if(is_file($subFile)){$fileArr[] = $subFile;} elseif (is_dir($subFile) && str_replace('.', '', $fileName)!=''){$dirArr[] = $subFile;$arr = deepScanDir($subFile);$dirArr = array_merge($dirArr, $arr['dir']);$fileArr = array_merge($fileArr, $arr['file']);}}closedir($dirHandle);}return array('dir'=>$dirArr, 'file'=>$fileArr);}//示例$dir = '/var/htdocs/w4/article';$arr = deepScanDir($dir);print_r($arr);/*** 取得输入目录所包含的所有文件* 以数组形式返回* author: flynetcn*/function get_dir_files($dir){if (is_file($dir)) {return array($dir);}$files = array();if (is_dir($dir) && ($dir_p = opendir($dir))) {$ds = DIRECTORY_SEPARATOR;while (($filename = readdir($dir_p)) !== false) {if ($filename=='.' || $filename=='..') { continue; }$filetype = filetype($dir.$ds.$filename);if ($filetype == 'dir') {$files = array_merge($files, get_dir_files($dir.$ds.$filename));} elseif ($filetype == 'file') {$files[] = $dir.$ds.$filename;}}closedir($dir_p);}return $files;}
页: [1]
查看完整版本: php获取某一目录包含的所有目录和文件