WWWWWWWWWP WWWWWWWWWP - 3 months ago 29
PHP Question

Browse directory recursively and get files name

I have to do a php script who browse a directory with sub-directory.
For each subdirectory (and maybe sub-subdirectory), I have to get filename and his parents directories.

Do you have a simple solution to do this please?
Thanks

Answer

Since I've had to create the same functionality for a website of mine too, I'll post my function as reference.

function recursiveFileSearch($path, $searchmask = "*") {
    $path = rtrim($path, '/');

    $files = array();
    if(is_array($searchmask)) {
        for($i = 0; $i < count($searchmask); $i++) {
            $files = array_merge($files, glob($path.'/'.$searchmask[$i]));
        }
        sort($files);
    } else {
        $files = glob($path.'/'.$searchmask);
    }


    $dirs = glob($path.'/*', GLOB_ONLYDIR);
    foreach($dirs as $dir) {
        if(is_dir($dir)) {
            $files = array_merge($files, recursiveFileSearch($dir, $searchmask));
        }
    }

    sort($files);
    return $files;
}