Alex Rivera | Logout

PHP - Listing all directories and sub-directories recursively in drop down menu

Asked 2013-01-13T15:31:28.020
14

Possible Duplicate:
PHP Get all subdirectories of a given directory

I want a drop down menu to show all sub-directories in ./files/$userid/ not just the main folder. For example: /files/$userid/folder1/folder2/

My current code is:

HTML:

<select name="myDirs">
<option value=""  selected="selected">Select a folder</option>

PHP:

if (chdir("./files/" . $userid)) {

       $dirs = glob('*', GLOB_ONLYDIR);
       foreach($dirs as $val){
          echo '<option value="'.$val.'">'.$val."</option>\n";
       }        
        } else {
       echo 'Changing directory failed.';
}
Edit
Report

1 Answer

13

You can write your own recursive listing of the directories like:

function expandDirectories($base_dir) {
      $directories = array();
      foreach(scandir($base_dir) as $file) {
            if($file == '.' || $file == '..') continue;
            $dir = $base_dir.DIRECTORY_SEPARATOR.$file;
            if(is_dir($dir)) {
                $directories []= $dir;
                $directories = array_merge($directories, expandDirectories($dir));
            }
      }
      return $directories;
}

$directories = expandDirectories(dirname(__FILE__));
print_r($directories);
answered 2013-01-13T16:00:04.433

Your Answer