Ver índice
Gestión de directorios

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


Funciones con directorios

PHP dispone de funciones que permiten obtener información sobre los contenidos de los directorios del servidor. Algunas de estas funciones son las siguientes:

Pseudo-objeto dir

Mediante la expresión:

$objeto = dir (path)

dónde path es la ruta absoluta (../dir/subdir/subsubdir) o relativa (./subdir ) hasta el directorio del que vamos a obtener información, recogemos en el pseudo objeto $objeto la información sobre el directorio en cuestión de una forma un tanto peculiar ya que $objeto se comporta como objeto y, como tal objeto, posee las propiedades y métodos que indicamos:

$objeto->handle

Devuelve una cadena con la descripción del identificador del recurso.

$objeto->path

Devuelve la ruta del directorio especificado.

$objeto->read()

Realiza una lectura secuencial de los nombres y extensiones de los ficheros contenidos en el directorio especificado.

$objeto->rewind()

Posiciona el puntero en la posición inicial.

$objeto->close()

Cierra el identificador de directorio.

Este es un ejemplo de utilización de los métodos de éste pseudo-objeto. Observa que las propiedades handle y path se invocan sin utilizar () mientras que tanto el método read() como rewind() o close() sí requieren esos paréntesis.

<?php
$directorio = dir("./images");
# en el caso de los objetos la manera de invocar
# uno de sus métodos y/o funciones requiere una sintaxis
# especifica con la que vera a lo largo de este ejemplo:
# es $objeto->metodo que equivale a la tradicional llamada
# a una variable en la forma $variable.
      echo "Handle: ".$directorio->handle."<br>\n";
      echo "Path: ".$directorio->path."<br>\n";
      while($fichero=$directorio->read()) {
             echo $fichero."<br>\n";
      }
      $directorio->rewind();
      echo "nuevo listado del directorio despues de rebobinar<br>" ;
      while($fichero=$directorio->read()) {
             echo $fichero."<br>";
      }
      $directorio->close();
 ?>
ejemplo264.php

Otras funciones sobre directorios

Este nuevo grupo de funciones informativas requiere un sintaxis que recuerda la lectura de ficheros. Hay que comenzar abriendo el directorio y una vez se hayan realizado las consultas hay que cerrarlo según se indica en las funciones siguientes.

$directorio= opendir (path)

Recoge en la variable $directorio un identificador que permitirá utilizar las restantes funciones.

$z= readdir ($directorio)

Hace una lectura secuencial del directorio indicado por el identificador $directorio. A medida que efectúa la lectura secuencial el puntero de lectura va desplazándose al fichero que sigue al último leído.

rewinddir($directorio1)

Rebobina haciendo que el puntero apunte al primer fichero del directorio.

closedir($directorio1)

Cierra el identificador del directorio.

<?php
#abrimos el identificador de directorio
$directorio = opendir("./images");
#leemos el primer fichero que será "." (recuerda la estructura de los directorios de MS-DOS)
      $fichero=readdir($directorio);
       echo $fichero,"<br>";
#leemos el fichero siguiente que será ".." (recuerda la estructura de los directorios de MS-DOS)
      $fichero=readdir($directorio);
      echo $fichero,"<br>";
#leemos el fichero siguiente  (el primer fichero "real")
      $fichero=readdir($directorio);
      echo $fichero,"<br>";
#rebobinamos, enviando el puntero al primer fichero
      rewinddir($directorio);
echo "Lista de TODOS los ficheros usando un bucle while<br>";
#leemos todos los ficheros
      while($fichero=readdir($directorio)) {
             echo $fichero."<br>";
      }
      closedir($directorio);
?>
ejemplo265.php