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. Los campos obligatorios están marcados con *