PHP: ottenere un elenco delle immagini presenti sotto una data directory

In PHP è semplice ottenere un elenco di tutte le immagini presenti sotto una data directory.

La seguente funzione esamina ricorsivamente la struttura di una directory di partenza e restituisce un array di percorsi relativi alle immagini ordinato secondo la data di modifica delle singole immagini.


function get_images($dir) {
    $path = $_SERVER['DOCUMENT_ROOT'] . '/' . $dir;
    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
    $images = array_filter(iterator_to_array($iterator), function($file) {
        return $file->isFile();
    });
    $image_srcs = array_keys($images);
    $output = [];
    foreach($image_srcs as $src) {
        if(preg_match('/\.(jpg|jpeg|png)$/', $src)) {
            $src_path = str_replace($_SERVER['DOCUMENT_ROOT'] . '/', '', $src);
            $output[filemtime($src)] = $src_path;
        }
    }
    ksort($output);
    return array_reverse($output);
}

Torna su