PHP: servire un listato di directory in JSON con AJAX

In PHP è semplice ottenere il listato di una directory in formato JSON.

La soluzione è la seguente:


function my_get_directory_listing($dirname) {
    $listing = [];
    $dir = $_SERVER['DOCUMENT_ROOT'] . $dirname;
    if(!is_dir($dir) || !is_readable($dir)) {
        return $listing;
    }
    $files = array_diff(scandir($dir), ['..', '.']);
    $finfo = finfo_open(FILEINFO_MIME_TYPE);

    foreach($files as $file) {
        $mime = finfo_file($finfo, $dir . '/' . $file);
        $data = [
            'src' => $dirname . '/' . $file,
            'type' => $mime
        ];
        $listing[] = $data;
    }
    return json_encode($listing);
} 

header('Content-Type: application/json');
echo my_get_directory_listing('/files');
exit;

Torna su