Skip to content

Instantly share code, notes, and snippets.

@hmert
Created July 8, 2013 23:27

Revisions

  1. hmert created this gist Jul 8, 2013.
    28 changes: 28 additions & 0 deletions directory.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    <?php
    function recursive_directory($dirname,$maxdepth=10, $depth=0){
    if ($depth >= $maxdepth) {
    return false;
    }
    $subdirectories = array();
    $files = array();
    if (is_dir($dirname) && is_readable($dirname)) {
    $d = dir($dirname);
    while (false !== ($f = $d->read())) {
    $file = $d->path.'/'.$f;
    // skip . and ..
    if (('.'==$f) || ('..'==$f)) {
    continue;
    };
    if (is_dir($dirname.'/'.$f)) {
    array_push($subdirectories,$dirname.'/'.$f);
    } else {
    array_push($files,$dirname.'/'.$f);
    };
    };
    $d->close();
    foreach ($subdirectories as $subdirectory) {
    $files = array_merge($files, recursive_directory($subdirectory, $maxdepth, $depth+1));
    };
    }
    return $files;
    }