Listar los archivos de una directorio o carpeta en PHP

Con este script podrás ver el contenido de una carpeta, todos sus archivos y directorios contenido. lo que hacemos es crear un RECURSO con la ruta actual y lo recorremos con un while, adicionalmente verificamos si es o no un subdirectorio. de ser cierto lo pondremos entre corchetes [] para diferenciarlo de los archivos

Este es script es bastante básico pero nos da una idea de como verificar y obtener el contenido de una carpeta en PHP así de como recorrerlo

<?php
$directorio = opendir("."); //ruta actual
while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
{
    if (is_dir($archivo))//verificamos si es o no un directorio
    {
        echo "[".$archivo . "]<br />"; //de ser un directorio lo envolvemos entre corchetes
    }
    else
    {
        echo $archivo . "<br />";
    }
}
?>

Más adelante haremos un script que nos permita visualizar todo el contenido de un sitio web como si fuera un explorador de Windows o un acceso FTP 🙂

Comments

21 respuestas a “Listar los archivos de una directorio o carpeta en PHP”

  1. eduardo Avatar
    eduardo

    Hola como puedo desplegar el contenido de un directorio en un combobox y que al seleccionarlo se muestre de cada uno el contenido de esas carpetas

  2. alejandro Avatar
    alejandro

    eduardo. Hola espero que te ayude… eso lo puedes hacer con ajax y en el evento onChage de tu select. El select lo puedes llenar con el resultado de la función que se describe en el artículo. El evento onChange llamará a otro controlador php que liste el contenido de la capeta que especifiques en el select.

  3. ivonne Avatar
    ivonne

    Excelente información gracias

  4. juan pablo Avatar
    juan pablo

    Su foro es excelente el código fuente me ha servido muchísimo pero solamente me lista las carpetas existentes de una rutad dada, quisiera saber como puedo no solo en listar las carpetas si no explorarlas y tener acceso a los archivos existentes dentro de las carpetas listadas.

  5. Cambialibros Avatar

    Hay una función nativa en PHP5: scandir( $ruta )
    Se obtiene un array con los ficheros y directorios ubicados en la ruta especificada.
    Saludos.

  6. Andres Avatar

    Gracias, me sirvio el codigo

  7. Carlos Alberto Avatar
    Carlos Alberto

    Hola que tal buenas noches, quiciera saber como desplegar el contenido por orden de nombre o fecha y todo en un 🙂 muchas gracias

  8. Juan Manuel Avatar
    Juan Manuel

    Excelente, gracias….

  9. Elena Avatar
    Elena

    Disculpen, tengo un problema, cuando la carpeta hay solamente carpetas, todas las toma como archivos cuando en realidad son carpetas.

  10. Martin Avatar
    Martin

    lEste es el codigo que tengo.. me muestra un combobox conlas carpetas que tengo en un directorio .. lo que quiero saber es! Como podria ver las subcarpetas y los archivos pdf que existen en ellas?? Codigo porfavor !

    <?php
    $directorio = getcwd()."/archivos";
    $sizekb = 0.0 ;
    $sizemb = 0.0 ;
    $dir=opendir($directorio);

    echo "”;
    echo “Archivo a eliminar: “;
    echo “”;
    while ($file = readdir($dir)){
    if ($file != “.” && $file != “..”){
    echo “$file”;
    }
    }
    echo “”;
    echo “”;
    closedir($dir);
    ?>

    1. Jhonnyf Avatar
      Jhonnyf

      Tendrias que agregarle un condicional en caso sea carpeta y de ser el caso, aplicar nuevamente la misma funcion (osea, tiene que ser una función recursiva)

  11. […] Origen: El Codigo Fuente – Listar los archivos de una directorio o carpeta en PHP […]

  12. edgar acosta Avatar
    edgar acosta

    hola que tal, tengo una duda, como podria buscar un archivo en un directorio para despues poder descargarlo?
    osea por lo poco que se tendria que hacer un formulario no?.
    Necesito buscar unos pdf en mi servidor y si existen poder descargarlos.
    Saludos

  13. Nancy Avatar
    Nancy

    gracias!

  14. arkev Avatar

    Excelente código me resolvió un problema, saludos y gracias por compartir

  15. Luis Macias Avatar
    Luis Macias

    Buenas, gracias por el codigo. Me funciono perfecto.
    antes yo tenia implementado este:
    foreach (glob(getcwd ().”*.txt”) as $filename)
    {

    aqui hago algo con los archivos txt resultantes
    }
    Dejo de funcionar en una actualizacion de php.
    El tuyo fue un excelente reemplazo, solo lo cambie para que solo trajera los archivos “txt”.
    Gracias

    1. ricardo Avatar
      ricardo

      como hiciste para que solo muestre los txt

  16. Victor Avatar
    Victor

    Muy entendible y funcional.
    Excelente, gracias!

  17. Rodolfo Lopez Avatar
    Rodolfo Lopez

    Muy bueno y exacto

  18. LIONKING Avatar
    LIONKING

    funcional, fácil de aplicar, gracias.

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *