glob 함수

glob 함수는 주어진 패턴에 맞는 파일과 디렉터리를 검색합니다. 첫 번째 매개변수로 검색 패턴 문자열이 전달됩니다. 두 번째 선택적 매개변수는 함수의 동작을 변경하는 플래그를 지정합니다.

문법

phpglob(pattern, [flags]);

플래그

플래그 설명
GLOB_MARK 반환된 각 디렉터리에 슬래시 /를 추가합니다.
GLOB_NOSORT 디렉터리에 있는 순서 그대로 파일을 반환합니다(정렬 없음).
GLOB_NOCHECK 일치하는 항목이 하나도 없으면 검색 패턴을 반환합니다.
GLOB_NOESCAPE 백슬래시가 메타문자를 이스케이프하지 않습니다.
GLOB_BRACE 여러 패턴 검색을 위해 {a,b,c}를 확장합니다.
GLOB_ONLYDIR 패턴에 맞는 디렉터리만 반환합니다.
GLOB_ERR 읽기 오류 시 중단합니다(예: 권한 없음).

예제

현재 디렉터리에서 .txt 확장자를 가진 모든 파일 찾기:

php<?php
  $res = glob('*.txt');
  print_r($res);
?>

코드 실행 결과:

php['file1.txt', 'file2.txt', 'notes.txt']

예제

'test'로 시작하는 모든 확장자의 파일 찾기:

php<?php
  $res = glob('test*');
  print_r($res);
?>

코드 실행 결과:

php['test.php', 'test.txt', 'test_image.jpg']

예제

여러 패턴 검색을 위해 GLOB_BRACE 플래그 사용:

php<?php
  $res = glob('*.{php,txt}', GLOB_BRACE);
  print_r($res);
?>

코드 실행 결과:

php['index.php', 'config.php', 'readme.txt']

예제

GLOB_RECURSE 플래그를 사용하여 하위 디렉터리에서 파일 검색:

php<?php
  $res = glob('**/*.php', GLOB_BRACE|GLOB_RECURSE);
  print_r($res);
?>

코드 실행 결과:

php['index.php', 'lib/utils.php', 'admin/index.php']

함께 보기

  • 디렉터리 내용을 읽는 함수 scandir,
  • 파일 존재 여부를 확인하는 함수 file_exists,
  • 파일을 확인하는 함수 is_file,