PHP 디렉토리 순회 함수 opendir(), readdir(), closedir(), rewinddir()_php 팁 요약
WBOY
풀어 주다: 2016-05-16 20:31:36
원래의
1279명이 탐색했습니다.
PHP 프로그래밍을 할 때 일반적으로 순회 디렉터리가 되는 서버의 특정 디렉터리 아래에 있는 파일을 찾아봐야 합니다. 디렉터리의 파일과 하위 디렉터리를 얻으려면 opendir() 함수, readdir() 함수, closedir() 함수 및 rewinddir() 함수를 사용해야 합니다.
①opendir() 함수
opendir() 함수는 지정된 디렉터리를 여는 데 사용되며 디렉터리의 경로와 디렉터리 이름을 매개변수로 받습니다. 함수 반환 값은 다른 디렉터리 함수에서 사용할 수 있는 디렉터리 핸들(리소스 유형)입니다. 디렉터리가 존재하지 않거나 액세스 권한이 없으면 FALSE를 반환합니다.
②함수 readdir()
readdir() 함수는 지정된 디렉터리를 읽는 데 사용됩니다. opendir() 함수로 열린 작동 가능한 디렉터리 핸들을 매개 변수로 받아들이는 함수입니다. 현재 디렉터리 포인터 위치에서 파일 이름을 반환하고 이동합니다. 디렉토리 포인터가 한 비트 뒤로 이동합니다. 포인터가 디렉터리 끝에 있으면 파일이 없기 때문에 FALSE가 반환됩니다.
③함수 closeir()
closedir() 함수는 지정된 디렉터리를 닫고 opendir() 함수를 매개 변수로 사용하여 열린 작동 가능한 디렉터리 핸들을 받아들입니다. 이 함수에는 반환 값이 없으며 실행 후 열린 디렉터리가 닫힙니다.
④rewinddir 함수()
reweinddir() 함수는 디렉터리 핸들을 되감고 opendir() 함수를 매개 변수로 사용하여 열린 작동 가능한 디렉터리 핸들을 허용합니다. 디렉터리 포인터를 디렉터리 시작 부분으로 재설정합니다. 즉, 디렉터리 시작 부분으로 되감습니다.
다음은 위 기능의 사용법을 예시로 보여줍니다. 참고로 이 예제를 사용하기 전에 합의된 디렉터리에 phpMyAdmin 폴더가 있는지 확인하세요. 코드는 다음과 같습니다.
$num = 0; //하위 디렉터리 및 파일 수를 계산하는 데 사용됩니다
$dirname = 'phpMyAdmin'; //편의를 위해 현재 디렉터리에 디렉터리 이름을 저장합니다.
$dir_handle = opendir($dirname); //opendir로 디렉터리 열기
//순회한 디렉터리와 파일명을 테이블 형식으로 출력
echo '
';
echo '
디렉터리 아래 내용'.$dirname.'
';
echo '
';
echo ' 파일 이름파일 크기파일 형식수정 시간';
//readdir을 사용하여 디렉토리 내용을 반복합니다.
while($file = readdir($dir_handle)){
//디렉터리의 파일을 프로그램에서 사용하기 전에 현재 디렉터리에 연결합니다
$dirFile = $dirname."/".$file;
echo '테이블>';
Closedir($dir_handle); //파일 작업 핸들을 닫습니다
echo ''.$dirname.' 디렉토리에는 총 '.$num.'
?>
위 프로그램은 먼저 디렉토리 포인터를 열고 이를 탐색합니다. 디렉터리를 탐색할 때 두 개의 특수 디렉터리 "."와 ".."가 포함됩니다. 이 두 디렉터리가 필요하지 않으면 차단될 수 있습니다. 물론 표시 내용은 폴더 내용에 따라 달라집니다. 위의 예에서 볼 수 있듯이 PHP에서 폴더의 내용을 검색하는 것은 복잡한 문제가 아닙니다. 더욱이, PHP는 "dir" 클래스를 사용하여 완성되는 디렉터리 탐색을 위한 객체 지향 방식도 제공합니다. 뿐만 아니라, PHP는 사용자의 요구 사항에 따라 디렉터리에서 지정된 내용을 검색할 수도 있으며, 지정된 디렉터리를 검색하는 glob() 함수를 제공합니다. 이 함수는 궁극적으로 검색 결과가 포함된 배열을 반환합니다.