PHP: alle bestanden uit een directory (inclusief onderliggende directories)

Met PHP is het eenvoudig om alle bestanden uit een directory te halen. Echter is het niet zo eenvoudig om ook de onderliggende bestanden ook gelijk op te halen. Gelukkig bied de volgende functie een oplossing:

/**
 * returns an array which contains all the files from a directory and it's
 * child dirs which has the given extension or returns false if the directory 
 * doesn't exists
 * 
 * @param string $dir path in which the files should be searched
 * @param mixed $ext extension which the files should have 
 * @return mixed
 */
function getFilesRecursive($dir, $ext = false) {
    $files = array();

    // dir must exists, this prevents errors
    if (!is_dir($dir)) {
        return false;
    }

    $handle = opendir($dir);
    while (false !== ($resource = readdir($handle))) {
        if (is_dir($dir . '/' . $resource) && ($resource != '.' && $resource != '..')) {
            $files = array_merge($files, getFilesRecursive($dir . '/' . $resource, $ext));
        }
        else if (!is_dir($dir . '/' . $resource)) {
            if (getFileExtension($dir . '/' . $resource) != $ext)
                continue;

            $files[] = $dir . '/' . $resource;
        }
    }
    closedir($handle);
    return $files;
}

Gebruik je deze functie of kan het misschien wel op een makkelijkere manier? Ik hoor het graag!

Leave a Reply

Your email address will not be published. Required fields are marked *