PHP 에서 디렉토리관련하여 상당히 많은 함수들이 제공된다. 그중 패턴을 이용하여  파일명 리스트를 추출할 수 있는 glob 라는 함수가 있는데 오늘은 이함수에 대해 간단하게나마 알아 보도록 하자

 

먼저 이함수는 아래의 PHP 그룹 사이트에서 상세 정보를 확인 가능하다. 

 
PHP: glob - Manual
PHP: glob - Manual
www.php.net/manual/en/function.glob.php

 

사용 방법의 경우 아래와 같이 특정 패턴을 이용하여 검색이 가능하다.

<?php
	$glob = glob('*.php'); // 현재 디렉토리에서 확장자가 .php 로 끝나는 모든 파일을 추출

	echo '<pre>';
	print_r($glob);
	echo '</pre>';
?>

위의 함수는 현재 디렉토리에서 확장자가 .php 로 끝나는 모든 파일들을 추출할 수 있다.  표시될때는 파일의 경로 없이 파일명만 추출된다. 

 

만약 디렉토리를 함께 추출하고 싶다면 아래와 같이 디렉토리를 붙여 주면 된다. 

<?php
	$glob = glob(__DIR__.'/*.php'); // 해당 디렉토리에서 특정 파일만 

	echo '<pre>';
	print_r($glob);
	echo '</pre>';
?>

 

좀더 나아가서 파일 확장자의 개수를 추출해 주는 프로그램을 간단하게 만들면 아래와 같이 할 수 있다.

<?php
	$filetype = array('jpg'=>0, 'png'=>0, 'gif'=>0, 'php'=>0,'js'=>0,'css'=>0); // 파일확장자
	foreach($filetype as $k=>$v){
		$filelist = glob('*.'.$k); // 해당 디렉토리에서 특정 파일만 
		$filetype[$k] = count($filelist);
	}
	echo '<pre>';
	print_r($filetype);
	echo '</pre>';
?>

 

또한 이 함수를 이용하면 복잡한 디렉토리 함수를 이용하지 않고도 아래와 같이 간단하게 현재 디렉토리안의 포함된 디렉토리 개수 와 파일 개수를 추출할 수 있다.

<?php
$rootDir = $_SERVER['DOCUMENT_ROOT']; // 웹 문서 루트 디렉토리
$dirlist = glob($rootDir.'/*',GLOB_ONLYDIR); // 해당 디렉토리만
$filelist = glob($rootDir.'/*'); // 해당 디렉토리에서 모든파일
echo count($dirlist);
echo count($filelist);
?>