PHP: ordinare per data i file presenti in una directory

PHP: ordinare per data i file presenti in una directory

Possiamo ordinare per data i file presenti in una directory con PHP.

La soluzione è la seguente.


function my_sort_files_by_date($dirname) {
    $base = $_SERVER['DOCUMENT_ROOT'] . '/' . $dirname;
    $files = array_diff(scandir($base), ['..', '.']);
    $base_url = 'https://' . $_SERVER['HTTP_HOST'] . '/' . $dirname . '/';
    $documents = [];

    foreach($files as $file) {
        if(preg_match('/\.pdf$/', $file ) ) {
            $document = $base . '/' . $file;
            $documents[] = [
                'url' => $base_url . $file,
                'date' => filectime($document)
            ];
        }
    }

    usort($documents, function($x, $y) {
        return $x['date'] < $y['date'];
    });

    return $documents;
}

Torna su