miércoles, 11 de agosto de 2010

Mostrar archivos dentro de un directorio con PHP

Resulta sorprendente la facilidad de uso de este lenguaje de programación, algo que vuelve a quedar patente en el siguiente ejemplo en el que con muy pocas líneas de código recorremos una carpeta o directorio y extraemos los nombres de todos los archivos con los que nos encontramos.

$d = opendir("./directorio");
while (($archivo = readdir($d)) !== false) {
  //readdir devolvera FALSE cuando
  //ya no encuentre ningun archivo
  $archivos[] = archivo;  
}
closedir($d);
//ahora tenemos un array con el nombre de
//cada uno de los archivos del directorio indicado

//si queremos limpiar el resultado eliminando "." y ".."
if ($archivo != "." && $archivo != "..") {
  $archivos[] = archivo;
}

Obtener rutas o paths con PHP

Obtenemos las distintas partes de una ruta con php, mediante el uso de pathinfo() accedemos a la información relativa a una ruta de archivo. Podemos indicar qué elementos son devueltos con el parámetro opcional options las distintas opciones son:

PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION y PATHINFO_FILENAME.

Si no indicamos ninguna de estas opciones pathinfo() devolverá una matriz con todos los elementos.

//realpath() devuelve el nombre de la ruta absoluta canonizada
$realPath = realpath("archivo.txt");
$pathParts = pathinfo($realPath);
//accedemos a las distintas partes de la ruta
$nombreDirectorio = $pathParts["dirname"];
$nombreArchivo = $pathParts["basename"];
$extension = $pathParts["extension"];

Pero si lo que buscamos es acceder a la base del arbol de documentos del servidor, podemos hacerlo de la manera tradicional.

$_SERVER['DOCUMENT_ROOT'];