PHP 하위 디렉토리 포함 디렉토리 리스트 출력

by 조쉬 posted Jan 12, 2023
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

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>";