Se que este es un tema ya muchas veces tratado. Y he leído algunos post con propuestas. También he realizado más de una vez esta tarea. Pero es que a la hora de volver a realizarla para otro proyecto me enredo.
Tengo plateada esta función recursiva para leer un directorio y sus subdirectorios. La condición es que se impriman primero las carpetas, y luego lor archivos. Por esto, almaceno los archivos en un array.
Lo que logro es listar los archivos de la carpeta raíz, pero de los de los subdirectorios ni noticias:
Cita: // imprimo el arbol.
function listar_directorios($leer){
$puntos = array('.', '..');
$item = array_diff(scandir($leer), $puntos); // quito subdirectorios "." y ".."
foreach($item as $elemento) {
$ruta = $leer.$elemento;
if (is_file($ruta) and strpos($elemento, "_thumb_") === FALSE) {
$files[] = '<li><span class="file">'.$elemento.'</span>';
}
elseif (is_dir($ruta)) {
echo '<li class="closed"><span class="folder">'.$elemento.'</span>
<ul>';
listar_directorios($ruta);
echo '</ul>
</li>';
};
}
if (!empty($files)) {
foreach($files as $archivo) { echo $archivo; }
};
};
listar_directorios($base);
Agradecería alguna luz.