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

PHP glob() 함수로 특정 폴더의 모든 이미지 파일 가져오는 방법

PHP로 폴더 안의 이미지 파일 목록 가져오기

PHP에서는 glob() 함수를 활용하면 특정 폴더에 저장된 이미지 파일들을 간단하게 가져올 수 있습니다. 이 함수는 지정한 패턴과 일치하는 모든 파일의 경로를 배열 형태로 반환하기 때문에, 이미지 목록을 자동으로 생성해야 하는 갤러리나 관리자 페이지를 만들 때 매우 유용합니다.

기본 예제 코드

아래 코드는 이미지가 저장된 폴더의 경로를 지정하고, 해당 폴더 안에 있는 .png 확장자를 가진 모든 파일을 추출한 후, foreach 반복문을 이용해 화면에 출력하는 예제입니다.

$dir_name = "path/to/image/folder/";
$images = glob($dir_name."*.png");
foreach($images as $image) {
    echo '<img src="'.$image.'" /><br />';
}

코드 설명

  • $dir_name: 이미지가 위치한 폴더의 경로를 지정합니다.
  • glob(): 지정한 패턴(*.png)과 일치하는 모든 파일의 전체 경로를 배열로 반환합니다.
  • foreach: 반환된 배열을 순회하며 각 이미지를 <img> 태그로 출력합니다.

이처럼 폴더에 포함된 이미지 개수와 상관없이, 폴더 내부의 모든 이미지 경로가 자동으로 반환되므로 별도의 하드코딩 없이 동적으로 이미지 목록을 구성할 수 있습니다.

여러 이미지 형식을 한 번에 가져오는 방법

JPG, PNG, GIF 등 다양한 확장자의 이미지를 함께 가져오고 싶다면 중괄호 패턴과 GLOB_BRACE 옵션을 사용할 수 있습니다.

$dir_name = "path/to/image/folder/";
$images = glob($dir_name."{*.jpg,*.jpeg,*.png,*.gif}", GLOB_BRACE);
foreach($images as $image) {
    echo '<img src="'.$image.'" alt="" /><br />';
}

참고로 GLOB_BRACE 옵션은 Alpine Linux 등 일부 비 GNU 시스템에서는 지원되지 않으므로, 서버 환경에 따라 확장자별로 glob을 여러 번 호출하는 방식을 고려하는 것이 좋습니다.

마무리

glob() 함수는 파일 시스템을 탐색하는 가장 간단한 방법 중 하나로, 몇 줄의 코드만으로 폴더 내 이미지를 손쉽게 나열할 수 있습니다. 대용량 디렉터리를 다루거나 정렬·필터링이 필요한 경우에는 scandir(), RecursiveDirectoryIterator 등의 방법과 함께 활용하면 더욱 유연한 처리가 가능합니다.