PHP에서 디렉토리의 파일 수 계산

Subodh Poudel 2023년6월20일
  1. FilesystemIterator 클래스를 사용하여 PHP에서 디렉토리의 파일 수 계산
  2. glob()count() 함수를 사용하여 PHP에서 디렉토리의 파일 수 계산
  3. scandir()count() 함수를 사용하여 PHP에서 디렉토리의 파일 수 계산
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 Poudel avatar Subodh Poudel avatar

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

관련 문장 - PHP Directory