Hola a todos, hoy os voy a explicar como podemos listar ficheros y carpetas en PHP.
PHP tiene acceso a los ficheros que tenemos en la aplicación y podemos listarlos para mostrarlos, como por ejemplo una aplicación de gestor de ficheros como mega o mediafire.
Esta va a ser nuestra estructura de ficheros:
Para obtener los ficheros de un directorio, tenemos que usar scandir. Este nos devolverá un array con los nombres de los ficheros y carpetas de la ruta que hayamos indicado como parámetro.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Listar ficheros</title> </head> <body> <?php $directorio = "ficheros"; $ficheros = scandir($directorio); ?> </body> </html>
Este es el contenido del array:
Tener en cuenta que tenemos el . (directorio actual) y .. (directorio padre).
Si queremos listarlo, lo podemos recorrer con un foreach y con la función is_file podemos saber si es un fichero o no, recordar de usar la ruta completa.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Listar ficheros</title> </head> <body> <ul> <?php $directorio = "ficheros"; $ficheros = scandir($directorio); foreach ($ficheros as $key => $fichero) { if ($fichero != "." && $fichero != "..") { $rutaCompleta = $directorio . '/' . $fichero; if (is_file($rutaCompleta)) { ?> <li> <img width="10px" height="10px" src="img/file.png"> <?php echo $fichero; ?> </li> <?php } else { ?> <li> <img width="10px" height="10px" src="img/folder.png"> <?php echo $fichero; ?> </li> <?php } } } ?> </ul> </body> </html>
Este es el resultado:
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta