이번에 소개할 서포트 함수는 서버내 디렉토리를 조회하여 정보를 배열로 보여주는 함수이다. 자세한 사용방법은 array_dir_filelist 함수내 주석을 참고하면 된다. 생각해보니 작업하면서 사용할일이 거의 없기도 하지만 혹시나 필요할 경우 참고하여 사용하기 바란다.
array_dir_filelist 함수 |
function array_dir_filelist($dir)
{
if( $dir == false || is_dir($dir) == false){ return array(); }
// 핸들 획득
$handle = opendir($dir);
$files = array();
$dirCount = array('file'=>0,'dir'=>0);
// 디렉터리에 포함된 파일을 저장한다.
$files[$dir] = array();
while (false !== ($filename = readdir($handle))) {
if($filename == "." || $filename == ".."){continue;}
// 파일인 경우만 목록에 추가한다.
if(is_file($dir . "/" . $filename)){
$files[$filename] = $dir."/".$filename;
$dirCount['file'] ++;
}else{
$dirCount['dir'] ++;
$sub = array_dir_filelist($dir . "/" . $filename);
$dirCount['file'] += $sub['dirCount']['file'];
$dirCount['dir'] += $sub['dirCount']['dir'];
$files[$filename] = $sub['files'];
}
ksort($files);
}
$files = array_filter($files);
// 핸들 해제
closedir($handle);
return array('files'=>$files, 'dirCount'=>$dirCount);
}
예제 |
$dir = $_SERVER['DOCUMENT_ROOT']."/";
$array_dir_filelist = array_dir_filelist($dir);
echo '<pre>';
print_r($array_dir_filelist);
echo '</pre>';