PHP에서 디렉토리의 파일 수 계산
-
FilesystemIterator
클래스를 사용하여 PHP에서 디렉토리의 파일 수 계산 -
glob()
및count()
함수를 사용하여 PHP에서 디렉토리의 파일 수 계산 -
scandir()
및count()
함수를 사용하여 PHP에서 디렉토리의 파일 수 계산
이 기사에서는 PHP의 디렉토리에 있는 파일 수를 세는 몇 가지 방법을 소개하고 시연합니다.
FilesystemIterator
클래스를 사용하여 PHP에서 디렉토리의 파일 수 계산
PHP는 FilesystemIterator
클래스를 제공하여 디렉토리의 파일 수를 세는 우아한 방법을 제공합니다. 이 클래스에는 파일 시스템
을 반복하기 위한 다양한 작업을 수행하는 많은 함수와 상수가 포함되어 있습니다.
iterator_count()
함수를 사용하면 반복자의 요소 수를 계산합니다.
다음 디렉토리 구조를 살펴보겠습니다.
myDir
├── abc.html
├── abc.jpeg
├── abc.php
└── abc.png
먼저 $iterator
변수를 만들고 FilesystemIterator()
인스턴스를 저장합니다. 첫 번째 매개변수를 __DIR__
로 설정하고 FilesystemIterator::SKIP_DOTS
를 생성자의 두 번째 매개변수로 사용합니다.
__DIR__
은 스크립트가 위치한 현재 디렉토리를 나타내며 두 번째 매개변수는 .
를 건너뛰는 플래그입니다. 및 ..
디렉토리에 존재합니다. $iterator
변수는 현재 디렉토리에 대한 filesystem
반복자를 포함합니다.
파일 이름, 파일 수 등과 같은 정보를 얻기 위해 반복될 수 있습니다.
다음으로 iterator_count()
함수를 사용하여 디렉토리에 있는 $iterator
의 수를 출력합니다.
예제 코드:
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
echo "There are ". iterator_count($iterator). " files in the directory";
출력:
There are 4 files in the directory
따라서 FilesystemIterator()
클래스를 사용하여 디렉토리의 파일 수를 계산할 수 있습니다.
glob()
및 count()
함수를 사용하여 PHP에서 디렉토리의 파일 수 계산
glob()
및 count()
함수를 사용하여 디렉토리의 파일 수를 얻을 수 있습니다. glob()
함수는 지정된 패턴과 일치하는 파일 및 폴더의 배열을 제공합니다.
*
를 사용하여 디렉토리 내의 모든 파일을 가져올 수 있습니다. 다음으로 count()
함수를 사용하여 해당 배열의 요소 수를 가져올 수 있습니다.
예를 들어 $path
변수를 만들고 파일을 계산할 디렉토리의 정확한 경로를 저장합니다. 다음으로 glob()
함수를 $path
변수에 사용하고 변수를 /*
와 연결합니다.
결과적으로 myDir
내부의 모든 파일 배열이 생성됩니다. 마지막으로 glob()
함수의 결과에 count()
함수를 사용합니다.
따라서 myDir
디렉토리 내의 파일 수를 찾을 수 있습니다. 아래 코드 예제는 첫 번째 예제에서 사용된 파일 구조를 나타냅니다.
예제 코드:
$path =$_SERVER['DOCUMENT_ROOT']."/myDir";
$num = count(glob($path . "/*"));
echo $num;
출력:
4
scandir()
및 count()
함수를 사용하여 PHP에서 디렉토리의 파일 수 계산
이 방법은 두 번째 방법과 유사한 접근 방식입니다. 유일한 차이점은 glob()
함수 대신 scandir()
함수를 사용한다는 것입니다.
scandir()
함수에 매개변수로 디렉토리 경로를 제공할 수 있습니다. 이 함수는 .
를 포함하여 디렉토리 내부의 모든 내용이 포함된 배열을 반환합니다. 그리고 ..
.
다음으로 count()
함수를 사용하여 디렉토리 내부의 콘텐츠 수를 가져올 수 있습니다. 마지막으로 중요한 부분은 count()
함수의 결과에서 2
를 빼서 .
의 개수를 제거하는 것입니다. 그리고 ..
.
따라서 디렉토리 내부의 정확한 파일 수를 얻을 수 있습니다.
예제 코드:
$path =$_SERVER['DOCUMENT_ROOT']."/myDir";
$num = count(scandir($path))-2;
echo "there are $num files in the directory";
출력:
there are 4 files in the directory
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn