Queste sono due funzioni che avevo postato per un problema simile:
Codice PHP:
function read_dir_tree($folder) {
$output = array();
foreach ( scandir($folder) as $item ) {
if ( $item == '.' OR $item == '..' )
continue;
$full_path = "$folder/$item";
if ( is_dir($full_path) ) {
$output[$item] = read_dir_tree($full_path);
} else {
$output[] = $full_path;
}
}
return $output;
}
function read_dir_plain($folder) {
$output = array();
foreach ( scandir($folder) as $item ) {
if ( $item == '.' OR $item == '..' )
continue;
$full_path = "$folder/$item";
if ( is_dir($full_path) ) {
$output = array_merge($output, read_dir_plain($full_path));
} else {
$output[] = $full_path;
}
}
return $output;
}
print_r(read_dir_tree('/percorso/della/directory'));
La prima restituisce un array a n dimensioni che rispecchia la struttura delle directory, la seconda invece fornisce solo una lista "piatta" di tutti i file con il loro path.