PHP의 glob
함수
glob
함수란?
glob
함수는 디렉토리 경로에서 패턴과 일치하는 파일들의 목록을 반환하는 PHP 내장 함수입니다. 파일 경로나 파일명에 사용되는 와일드카드 문자를 포함한 패턴을 이용하여 파일들을 검색할 수 있습니다.
glob
함수의 사용 예시:
$files = glob('images/*.jpg');
foreach ($files as $file) {
echo $file . '<br>';
}
위 예시는 ‘images’ 디렉토리에서 확장자가 ‘jpg’인 파일들의 목록을 가져와서 출력합니다.
다른 함수와 함께 사용하는 예시:
glob
함수는 파일 검색과 조합하여 파일 경로나 파일명을 동적으로 가져오는 용도로 주로 사용됩니다.
function getFilesWithExtension($directory, $extension) {
$pattern = "$directory/*.$extension";
return glob($pattern);
}
$files = getFilesWithExtension('documents', 'txt');
print_r($files);
위 예시는 디렉토리 ‘documents’에서 확장자가 ‘txt’인 파일들의 목록을 가져와서 반환하는 함수를 정의하고 사용합니다.
조건문과 반복문과 함께 사용하는 예시:
glob
함수는 검색된 파일 목록을 조건문과 반복문과 함께 사용하여 필요한 처리를 수행하는데 활용됩니다.
$files = glob('photos/*.{jpg,png,gif}', GLOB_BRACE);
if (count($files) > 0) {
echo "Found " . count($files) . " photos.<br>";
foreach ($files as $file) {
echo "<img src='$file' alt='photo'><br>";
}
} else {
echo "No photos found.";
}
위 예시는 ‘photos’ 디렉토리에서 jpg, png, gif 확장자를 가진 파일들을 검색하여 해당 파일들을 이미지로 출력합니다. 검색된 파일이 없는 경우 "No photos found." 메시지를 출력합니다.
성능 향상을 위한 팁:
glob
함수는 디렉토리의 모든 파일을 스캔하여 일치하는 파일들을 찾습니다. 만약 파일 수가 많다면 성능에 영향을 미칠 수 있으므로, 검색 범위를 최소화하여 사용하는 것이 좋습니다. 또한 캐싱 기법을 사용하거나, 검색된 파일 목록을 미리 저장하여 중복 검색을 피하는 등의 성능 최적화 방법을 고려할 수 있습니다.