집 >
기사 > 백엔드 개발 > (가장 명확함) 폴더의 모든 파일과 하위 폴더를 탐색할 수 있는 함수를 작성하세요.
(가장 명확함) 폴더의 모든 파일과 하위 폴더를 탐색할 수 있는 함수를 작성하세요.
- WBOY원래의
- 2016-08-08 09:29:151368검색
<?php
function my_scandir($dir)
{
$files = array();
if ( $handle = opendir($dir) ) {
while ( ($file = readdir($handle)) !== false ) {
if ( $file != ".." && $file != "." ) {
if ( is_dir($dir . "/" . $file) ) {
$files[$file] = my_scandir($dir . "/" . $file);
}else {
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
dump(my_scandir("D:\wwwroot"));
function dump($vars){
$content = "<div align=left><pre class="brush:php;toolbar:false">\n" . htmlspecialchars(print_r($vars, true)) . "\n
\n";
echo "
{$content}";
return;
}
opendir -- 오픈 디렉터리 핸들
설명
resource opendir(문자열 경로)
나중에 closedir(), readdir()에서 사용할 수 있는 디렉터리 핸들을 반환합니다. ) 및 rewinddir() 호출이 가능합니다.
경로가 합법적인 디렉터리가 아니거나 권한 제한이나 파일 시스템 오류로 인해 디렉터리를 열 수 없는 경우 opendir()은 FALSE를 반환하고 E_WARNING 수준의 PHP 오류 메시지를 생성합니다. opendir() 앞에 "@" 기호를 추가하면 오류 메시지 출력을 억제할 수 있습니다.
readdir -- 디렉터리 핸들에서 항목 읽기
설명
문자열 readdir(resource dir_handle)
디렉터리에 있는 다음 파일의 파일 이름을 반환합니다. 파일 이름은 파일 시스템에 순서대로 반환됩니다.
아래 예시에서 readdir()의 반환 값을 확인하는 스타일을 참고하세요. 반환 값이 모두 동일한지 여부를 명시적으로 테스트합니다(같은 값 및 유형 - 자세한 내용은 비교 연산자 참조). 그렇지 않으면 이름이 FALSE로 평가되는 디렉터리 항목이 루프를 중지하게 됩니다(예: "0"이라는 디렉터리). ).
is_dir -- 주어진 파일 이름이 디렉터리인지 확인합니다.
설명
bool is_dir(string filename)
파일 이름이 존재하고 디렉터리이면 TRUE를 반환합니다. filename이 상대 경로인 경우 상대 경로는 현재 작업 디렉터리에 대해 확인됩니다.
참고: 이 함수의 결과는 캐시됩니다. 자세한 내용은 Clearstatcache()를 참조하세요.
참고: 이 기능은 원격 파일에서는 사용할 수 없습니다. 검사 중인 파일은 서버의 파일 시스템을 통해 액세스해야 합니다.
scandir -- 지정된 경로에 있는 파일과 디렉터리를 나열합니다.
설명
array scandir(string 디렉터리 [, int sorting_order])
디렉터리 파일과 디렉터리가 포함된 배열을 반환합니다. 디렉토리. 디렉토리가 디렉토리가 아닌 경우 부울 값 FALSE를 반환하고 E_WARNING 수준 오류를 생성합니다.
기본적으로 반환된 값은 알파벳 오름차순으로 정렬됩니다. 선택적 매개변수 sorting_order를 사용하는 경우(1로 설정) 순서는 알파벳 내림차순으로 정렬됩니다.
위에서는 폴더의 모든 파일과 하위 폴더를 탐색할 수 있는 함수를 작성하는 방법(가장 분명한)을 소개합니다. , 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
성명:본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.