PHP 하위 디렉토리 포함 디렉토리 리스트 출력 함수
1. opendir, readdir 함수 사용
function GetDir($dir) {
if(is_dir($dir)) {
if($kami= opendir($dir)){
while($file = readdir($kami)){
if($file != '.' && $file != '..'){
if(is_dir($dir . $file)){
echo $dir . $file."\n"; // 디렉토리만 출력
GetDir($dir . $file . '/');
}else{
echo $dir . $file."\n"; // 파일 출력
}
}
}
}
closedir($kami);
}
}
echo "<pre>";
GetDir("/home/testuser/");
2. glob 함수 이용
function listdirs($dir) {
$dirs = glob($dir . '/*', GLOB_ONLYDIR);
if (count($dirs) > 0) {
foreach ($dirs as $d) echo $d."\n";
}
foreach ($dirs as $dir) listdirs($dir);
}
echo "<pre>";
listdirs('/home/testuser');
echo "</pre>";
* 배열 이용
function listdirs($dir) {
static $alldirs = array();
$dirs = glob($dir . '/*', GLOB_ONLYDIR);
if (count($dirs) > 0) {
foreach ($dirs as $d) $alldirs[] = $d;
}
foreach ($dirs as $dir) listdirs($dir);
return $alldirs;
}
$directory_list = listdirs('/home/testuser');
echo "<pre>";
print_r($directory_list);
echo "</pre>";