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.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!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> $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.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<!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> $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"> echo $fichero; ?> </li> } else { ?> <li> <img width="10px" height="10px" src="img/folder.png"> echo $fichero; ?> </li> } } } ?> </ul> </body> </html> |
Este es el resultado:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta