Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP glob() 함수 완벽 가이드: 패턴으로 파일과 디렉터리 찾기

PHP의 glob() 함수는 지정된 패턴과 일치하는 파일명 또는 디렉터리 이름을 배열 형태로 반환하는 함수입니다. 파일 시스템에서 특정 조건에 맞는 파일을 손쉽게 검색할 때 매우 유용하게 사용됩니다.

glob() 함수의 반환 값

  • 패턴과 일치하는 파일/디렉터리 목록을 담은 배열
  • 일치하는 파일이 없을 경우 빈 배열
  • 오류가 발생하면 FALSE

문법

glob(pattern, flags)

매개변수 설명

  • pattern − 검색할 패턴입니다. 예를 들어 "*.txt"처럼 와일드카드를 사용할 수 있습니다.

  • flags − 검색 동작을 제어하는 선택적 옵션입니다. 사용 가능한 플래그는 다음과 같습니다:

    • GLOB_MARK - 반환되는 각 항목 끝에 슬래시(/)를 추가합니다.
    • GLOB_NOSORT - 디렉터리에 나타나는 순서 그대로 정렬하지 않고 반환합니다.
    • GLOB_NOCHECK - 일치하는 항목이 없을 경우 검색 패턴 자체를 반환합니다.
    • GLOB_NOESCAPE - 백슬래시(\)가 메타 문자를 이스케이프하지 않도록 합니다.
    • GLOB_BRACE - {p,q,r} 형태를 확장하여 'p', 'q', 'r' 중 하나와 일치시킵니다.
    • GLOB_ONLYDIR - 패턴과 일치하는 디렉터리만 반환합니다.
    • GLOB_ERR - 오류 발생 시 중단합니다. 기본값은 오류를 무시합니다.

반환 값

glob() 함수는 패턴과 일치하는 파일/디렉터리를 포함한 배열을 반환합니다. 일치하는 파일이 없으면 빈 배열을 반환하고, 오류가 발생하면 FALSE를 반환합니다.

예제 1: 특정 확장자 파일 찾기

다음 예제는 현재 디렉터리에서 .htm 확장자를 가진 모든 파일을 검색합니다.

<?php
   print_r(glob("*.htm"));
?>

출력 결과

Array
(
   [0] => one.htm
   [1] => two.htm
   [2] => three.htm
)

이번에는 다른 예제를 살펴보겠습니다.

예제 2: 모든 파일의 크기 출력하기

foreach 반복문과 함께 glob() 함수를 사용하면 디렉터리 내 모든 파일을 순회하며 각 파일의 크기를 확인할 수 있습니다.

<?php
   foreach (glob("*.*") as $myfiles) {
      echo "$myfiles filesize = " . filesize($myfiles) . "\n";
   }
?>

출력 결과

one.htm filesize = 56790
two.htm filesize = 432987
new.docx filesize = 184256
students.csv filesize = 4626
php.int filesize = 1287
settings.ini filesize = 3516

이처럼 glob() 함수를 활용하면 opendir(), readdir() 등을 복잡하게 조합하지 않고도 간결한 코드로 원하는 파일 목록을 손쉽게 가져올 수 있습니다.