scandir()는 지정된 디렉터리에 있는 파일 및 디렉터리의 배열을 반환합니다. 성공하면 파일 및 디렉터리 배열을 반환합니다. 실패 시 FALSE를 반환합니다. 디렉토리가 디렉토리가 아닌 경우 E_WARNING 수준 오류가 발생합니다.
Syntax
scandir(directory,sorting_order,context);
Parameters | Description |
---|---|
directory | 필수입니다. 스캔할 디렉터리를 지정합니다. |
sorting_order |
선택사항. 정렬 순서를 지정합니다. 기본값은 0이며 알파벳 오름차순을 나타냅니다. SCANDIR_SORT_DESCENDING 또는 1로 설정하면 알파벳 내림차순으로 정렬한다는 의미입니다. SCANDIR_SORT_NONE으로 설정하면 정렬되지 않은 결과를 반환합니다. |
context | 선택사항. 디렉터리 핸들의 환경을 지정합니다. context는 디렉터리 스트림의 동작을 수정하는 옵션 집합입니다. |
예:코드는 다음과 같습니다.
<?php print_r(scandir('test_directory')); ?>
출력은 다음과 같습니다.
Array ( [0]=>. [1]=>.. [2]=>1.txt [3]=>2.txt )
대부분의 경우 다음과 같이 디렉터리의 파일 목록 배열만 필요합니다.
Array ( [0]=>1.txt [1]=>2.txt )
일반적으로 "." 또는 ".." 제외 배열 항목이 해결되었습니다. 코드는 다음과 같습니다.
<?php functionfind_all_files($dir) { $root = scandir($dir); foreach ($rootas$value) { if($value === '.' || $value === '..'){ continue ; } if(is_file("$dir/$value")){ $result[] = "$dir/$value"; continue; } foreach(find_all_files("$dir/$value")as$value) { $result[] = $value; } } return $result; } ?>
또 다른 방법은 array_diff 함수를 사용하여 scandir 함수를 실행하여 얻은 배열을 제거하는 것입니다. 코드는 다음과 같습니다.
<?php $directory='/path/to/my/directory'; $scanned_directory=array_diff(scandir($directory),array('..','.')); ?>
일반적으로 코드 관리는 svn 파일 또는 .htaccess 및 디렉터리 액세스 권한을 제한하는 기타 파일에서 발생합니다. 따라서 array_diff 함수를 통해 필터링하는 것이 더 편리합니다.
위 내용은 특정 디렉토리를 제외하는 PHP scandir() 함수 사용 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!