Listar ficheros y carpetas en PHP

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.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.