특정 디렉토리 내의 파일과 서브디렉토리 중 특정 패턴을 찾을 경우가 종종 있습니다. 기존의 시스템 함수를 이용하여 처리하려면 코드가 꽤 길어지지만, SPL(Standard PHP Library)를 이용하면 짧으면서 우아하게 처리 할 수 있습니다.
|
|
우선 RecursiveDirectoryIterator
클래스에 매개변수로 찾을 디렉토리를 넣고 인스턴스를 생성합니다. 그 다음 RecursiveIteratorIterator
클래스에 앞서 생성한 RecursiveDirectoryIterator
를 넣고 인스턴스를 생성합니다.
마지막으로 특정 패턴만을 걸러내기 위해 RecursiveIteratorIterator
를 매개변수로 넣은 RegexIterator
인스턴스를 생성하면 됩니다. 이렇게 생성한 인스턴스는 foreach 구문을 통해 특정 패턴에 일치하는 특정 디렉토리 내 모든 파일을 차례대로 순회합니다.
SPL 등장 전에는 이런 작업을 하려면 시스템 함수를 이용해서 일일히 코딩을 하거나 이미 만들어진 라이브러리를 이용해야 했습니다만, 지금은 SPL의 다양한 Iterator
클래스를 조합하여 사용하면 쉽게 처리 할 수 있습니다.