디렉토리에 포함된 모든 디렉토리와 파일을 얻기 위한 PHP 구현 코드
풀어 주다: 2016-07-25 08:57:48
-
- /**
- * 取得输入目录所包含的所有目录和文件
- * 以关联数组形式返回
- * edit: bbs.it-home.org
- */
- 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;
- }
复制代码
|
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31