>백엔드 개발 >PHP 튜토리얼 >PHP glob() 함수를 사용하여 파일 이름의 와일드카드 문자를 기반으로 파일을 찾습니다.

PHP glob() 함수를 사용하여 파일 이름의 와일드카드 문자를 기반으로 파일을 찾습니다.

PHPz
PHPz원래의
2023-06-27 11:16:291712검색

파일을 처리하다 보면 특정 파일을 찾아야 하는 상황이 자주 발생합니다. 파일 수가 적은 경우 수동 검색을 사용할 수 있습니다. 그러나 관련된 파일 수가 많으면 수동 검색이 부담스럽습니다. 이때 유용한 함수인 glob() 함수가 유용합니다.

glob() 함수는 PHP에서 매우 실용적인 함수로, 와일드카드 문자를 지정하여 파일과 디렉터리를 찾을 수 있습니다. glob() 함수는 또한 다양한 매개변수를 통해 발견된 파일을 정렬하고 필터링할 수 있으므로 많은 수의 파일 중에서 필요한 파일을 빠르게 찾을 수 있습니다.

아래에서는 함수의 기본적인 사용법부터 시작하여 glob() 함수의 사용법을 점차적으로 소개합니다.

glob() 함수

glob() 함수의 기본 사용법은 매우 간단합니다. 이 함수에는 찾아야 하는 파일을 나타내는 와일드카드 문자인 매개변수가 하나만 있습니다. 다음은 예입니다.

$files = glob('/path/to/files/*.jpg');

이 예에서 와일드카드 문자는 "*.jpg"입니다. 이는 /path/to/files/ 디렉터리에서 접미사가 ".jpg"인 모든 파일을 검색한다는 의미입니다. 검색된 결과는 배열 형태로 반환됩니다.

특정 디렉터리에서 모든 파일과 하위 디렉터리를 찾으려면 "**" 와일드카드를 사용할 수 있습니다.

$files = glob('/path/to/files/**');

이 방법으로 /path/to/files/ 디렉터리에서 모든 파일과 디렉터리를 찾을 수 있습니다. , 아래의 하위 디렉터리 파일 및 디렉터리를 포함합니다.

또한 문자 집합을 지정하기 위해 와일드카드에 대괄호를 사용할 수도 있습니다.

$files = glob('/path/to/files/[abc]*');

이 방법을 사용하면 "a", "b" 또는 "c"로 시작하는 모든 파일을 찾을 수 있습니다.

glob() 함수의 고급 사용법

glob() 함수의 기본 사용법은 위에 소개되어 있습니다. 그러나 검색된 결과를 정렬하고 필터링하도록 매개변수를 설정할 수도 있습니다.

정렬 방법 설정

두 번째 매개변수(정렬 모드 표시)를 설정하면 검색된 결과를 정렬할 수 있습니다. 다음은 일반적으로 사용되는 정렬 모드입니다.

  • GLOB_NOSORT: 기본 정렬 모드로, 정렬이 수행되지 않습니다.
  • GLOB_NOCHECK: 오류 검사가 없습니다.
  • GLOB_NOCASE: 대소문자를 구분하지 않습니다.
  • GLOB_BRACE: 중괄호 확장을 활성화하면 와일드카드에 중괄호를 사용할 수 있습니다.
  • GLOB_ONLYDIR: 디렉토리만 검색합니다.
  • GLOB_ERR: 오류가 발생하면 검색을 중지합니다.

예를 들어 접미사 ".jpg"가 있는 모든 파일을 이름을 기준으로 역순으로 정렬하려면 다음 코드를 사용할 수 있습니다.

$files = glob('/path/to/files/*.jpg', GLOB_NOSORT|GLOB_NOCHECK);
rsort($files);

이 예에서는 GLOB_NOSORT 및 GLOB_NOCHECK라는 두 개의 상수를 사용하여 정렬 방법.

필터 설정

세 번째 매개변수(필터를 나타냄)를 설정하면 검색된 결과를 필터링할 수 있습니다. 다음은 일반적으로 사용되는 몇 가지 필터입니다.

  • GLOB_MARK: 디렉터리를 나타내려면 결과에 "/"를 추가합니다.
  • GLOB_NOSORT: 정렬이 없습니다.
  • GLOB_ONLYDIR: 디렉토리만 검색합니다.
  • GLOB_ERR: 오류가 발생하면 검색을 중지합니다.
  • GLOB_BRACE: 중괄호 확장을 활성화하면 와일드카드에 중괄호를 사용할 수 있습니다.
  • GLOB_NOESCAPE: 켜져 있으면 와일드카드 문자의 ""가 이스케이프되지 않습니다.
  • GLOB_NOCHECK: 오류 검사가 없습니다.
  • GLOB_NOCASE: 파일 이름은 대소문자를 구분하지 않습니다.

예를 들어 크기가 100MB 이하인 파일만 찾으면 다음 코드를 사용할 수 있습니다.

$files = glob('/path/to/files/*.*');
array_filter($files, function($file) {
  return filesize($file) <= 100 * 1024 * 1024;
});

이 예에서는 array_filter() 함수를 사용하여 결과를 필터링합니다.

요약

위의 예를 통해 PHP에서 glob() 함수를 사용하여 파일 및 디렉터리를 검색하는 방법을 배웠습니다. glob() 함수는 매우 간단하고 실용적이며 많은 매개변수와 사용법을 갖고 있어 보다 복잡하고 유연한 파일 검색 및 처리를 달성할 수 있습니다. PHP 프로젝트에서는 glob() 함수를 선택하여 많은 수의 파일과 디렉터리를 간단하고 효율적으로 처리할 수 있습니다.

위 내용은 PHP glob() 함수를 사용하여 파일 이름의 와일드카드 문자를 기반으로 파일을 찾습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.