Bienvenidos a Trocitos de programación


Bienvenidos a Trocitos de programación (En construcción)
Creo este blog para hacer como un pequeño repositorio de pequeños scripts o trocitos de código que he utilizado en algún momento y pueden ser útiles para otras personas o para mi mismo en algún momento.
Aclarar que no soy ningún experto en la materia ni mucho menos y que tampoco no todos los códigos estarán hechos por mi en su totalidad sino que igual en su momento busque una solución y encontre la solución completa o parcial.
(por esto pido comprensión si alguna vez alguien ve algun trocito que él mismo puso en algun foro ya que no puedo tener las fuentes de todas las cosas que he sacado de internet, si se diera el caso, el propietario que deje un comentario publicando su desaprobación de que yo publique ese contenido junto con un enlace al lugar en el que él lo publico, y mis más sinceras disculpas).

domingo, 27 de enero de 2013

Listar contenido de un directorio PHP

Con este trocito de código podemos listar los archivos que contiene un directorio:
NOTA: dependiendo la configuración del sistema operativo, quizás se requieran permisos.
Ejemplo:

Código PHP:

     $directorio="C:\Users\Sergio\Downloads";
     //Abrimos el directorio
     if(!($obertura=opendir($directorio)))
 die("No se puede abrir el directorio");
     
     echo "<ul>";
     while($contenido=readdir($obertura)) {
          //No mostrar ni el directorio actual ni el padre
          //aqui se podrian hacer otro tipo de filtros, usar is_dir() para filtro para solo ficheros o solo directorios
          if($contenido!="." && $contenido!= ".." ){
     echo "<li>$contenido</li>"; 
   }
     }
     echo "</ul>";
     closedir($obertura); 

Bueno ahí lo dejo, seguro que hay alguna forma mejor o más optima pero yo lo resolví así, si alguien quiere poner un comentario explicando una forma mejor que no se vea cohibido puesto que la función de este blog es ayudar y mejorar en la medida de lo posible.

Un saludo.

2 comentarios :

  1. La opción más sencilla es la siguiente:

    if (is_dir($contenido)) {
    //Es un directorio
    } else {
    echo "<li>$contenido</li>";
    }

    ResponderEliminar
    Respuestas
    1. Hola Javier, gracias por tu aporte.

      Lo que comentas es cierto, aunque en este caso tan solo estoy mostrando la manera de listar el primer nivel de un directorio y no es necesario evaluar si es un directorio o un fichero cualquiera porque simplemente se va a mostrar la ruta, ya dejé un comentario con el is_dir por si se requiere filtrar directorios o ficheros.
      Con tu código se saltaría por alto todos los directorios y no solo el actual y el anterior, claro que seria el método necesario si se quisiera listar el árbol completo de directorios con una función recursiva.

      Gracias de nuevo por tu aporte. Un saludo.

      PD: Ahora mismo no estoy seguro y no puedo comprobarlo, pero diría que, si se quisiera hacer la función recursiva para listar el árbol completo de directorios, sería necesario comprobar si son los "." o ".." porque sino se podría entrar en un bucle infinito.

      Eliminar