Mostrar el listado de archivos de un directorio

Buenas, tengo que hacer una pagina para una intranet en la que debo mostrar el contenido de un directorio. Mi pregunta es ¿como puedo hacer...

La FAQ Mostrar el listado de archivos de un directorio tiene

Pertenece a la categoría:
Pregunta
Buenas, tengo que hacer una pagina para una intranet en la que debo
mostrar el contenido de un directorio.


Mi pregunta es ¿como puedo hacer desde php para obtener el nombre de todos
los archivos que hay en un directorio?

Respuesta de Ruben Alvarez
creo que este script te servira:





<?


$path="mi/directorio/";


$directorio=dir($path);





echo "Directorio ".$path.":<br><br>";





while ($archivo = $directorio->read())


{


    echo $archivo."<br>";


}


$directorio->close();


?>





Un artículo publicado en DesarrolloWeb amplia este tema:


http://www.desarrolloweb.com/articulos/935.php
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

Jesus Enrique Muñoz Fernandez

11/4/2006
//definimos el directorio donde se guadan los archivos
$path = "mDirectorio/";
//abrimos el directorio
$dir = opendir($path);
//guardamos los archivos en un arreglo
$img_total=0;
while ($elemento = readdir($dir))
{
if (strlen($elemento)>3)
{
$img_array[$img_total]=$elemento;
}
}
$img_total++;
}


for ($i=$0;$i<$img_total; $i++)
{
$imagen = $img_array[$i];
$num = $i+1;
$pathimagen=$path.$imagen;
if ($columna==1)
echo "<tr>"; // para empezar una nueva linea
echo "<td align='center'>

echo"<img src='$pathimagen' width='100' height='100' border=0 >";


echo "<br>".$imagen."</a>";

echo "</td>";
if ($columna == $img_col)
{ $columna=1;
echo "</tr>";
}
else
$columna++;
}

ALBERTO

20/7/2007
Tu código Jesús sería así:

<?
//definimos el directorio donde se guadan los archivos
$path = "./";
//abrimos el directorio
$dir = opendir($path);
//guardamos los archivos en un arreglo
$img_total=0;
while ($elemento = readdir($dir))
{
if (strlen($elemento)>3)
{
$img_array[$img_total]=$elemento;
}

$img_total++;
}

for ($i=0;$i<$img_total; $i++)
{
$imagen = $img_array[$i];
$num = $i+1;
$pathimagen=$path.$imagen;
if ($columna==1)
echo "<tr>"; // para empezar una nueva linea
echo "<td align='center'>";
echo"<img src='$pathimagen' width='100' height='100' border=0 >";
echo "<br>".$imagen."</a>";
echo "</td>";
if ($columna == $img_col)
{
$columna=1;
echo "</tr>";
}
else
{
$columna++;
}
}
?>

Hay que revisarlo antes de publicarlo, porque sobraban llaves en algunos sitios y faltaban en otros, lo mismo con los $

pino

28/9/2007
/* Función para renombrar recursivamente pares de imágenes */

<?php
$path=".";
$directorio=dir($path);
$prefi="";
echo "Directorio ".$path.":<br><br>";
$cont=1;
while ($archivo = $directorio->read())
{
//$cont++;
if (strlen($archivo) > 2 && ereg('a', $archivo)) {
$trozos = explode(".", $archivo);
if($trozos[1] == "jpg") {
$partes = explode("a", $archivo);

rename("$archivo","default".$cont."a.jpg");

echo $archivo."<br>";
if(file_exists($partes[0]."b.jpg")){
$archivo2 = $partes[0]."b.jpg";

rename("$archivo2","default".$cont."b.jpg");
$cont++;

echo $archivo2."<br>";
//continue();
}


}
/*
echo $trozos[0]; // trozo1
echo $trozos[1]; // trozo2
echo $archivo."<br>";
*/

}

}
$directorio->close();
?>

John William Moreno Vergel

30/5/2009
Correccion final del código (ahora si sirve!!!)
Hola, me interesó mucho este sencillo y práctico código para generar Thumbnails (Galeria de imagenes) a partir de una directorio, sin la necesidad de tener la libreria GD en el server, lo interesante del codigo es que es muy facil de entender y ademas se puede acomodar a los gustos de cada programador, es una base muy buena, para que puedan hacer uso del codigo, les dejo el que corregí, según dice arriba que lo corrigieron pero NO, a mi me salio descuadrado y además calculaba mal el total de imagenes del directorio...

yo trabajo los archivos php aparte, por eso la hice como funcion:

(galeria.php)

// generedor php de imagenes
function galeria($ruta) {
//definimos el directorio donde se guadan los archivos
$path = $ruta;
//definimos el numero maximo de columnas
$img_col = 3;
//abrimos el directorio
$dir = opendir($path);
//guardamos los archivos en un arreglo
$img_total=0;
echo "<table>";
$columna=1;
while ($elemento = readdir($dir))
{
if (strlen($elemento)>3) //verifica si son archivos validos
{
$img_array[$img_total]=$elemento;
$img_total++;
}
}
for ($i=0;$i<$img_total; $i++)
{
$imagen = $img_array[$i];
$num = $i+1;
$pathimagen=$path.$imagen;
if ($columna==1) echo "<tr>"; // para empezar una nueva linea
echo "<td align="center">";
echo "<img src="$pathimagen" width="100" height="100" border=0 />";
echo "<br />".$num.") ".$imagen;
echo "</td>";
if ($columna == $img_col)
{
$columna=1;
echo "</tr>";
}
else
{
$columna++;
}
}
echo "</table>";
}


Ahora, como aplicar esta funcion para los que no saben... primero que todo al comienzo de toda la pagina, puede ser antes del <HTML>, poner esto:

<?php include("galeria.php"); ?>

y ahora viene lo bueno, pegamos el siquiente código en la seccion que deseen:

<?php galeria("Images/Galeria1/") ?> // aca ponen la ruta donde estan las imagenes

y listo, eso era todo, gracias por el que arrojo el codigo, lo necesitaba, y así como recibí yo tambien doy, que lo disfruten. si quieren visiten una pagina que estoy desarrollando: www.alegriaproduccionesbga.com, ahi estoy implementando este codigo... mi correo es: john_will38@hotmail.com, por si algo, chao.

KPP

02/5/2011
Estimado Aberto
este codigo como lo puedo utilizar tengo que crear una pagina html? o .php?

delfin70

12/1/2013
Mover el $img_total++
Pienso que en el codigo podriamos subir el $img_total++; dentro del if. ya que al llenar el array inicia con el indice 2 y cuando lo recuperamos iniciamos en el 0. por lo cual se propone el siguiente cambio :


while ($elemento = readdir($dir))
{
if (strlen($elemento)>3)
{
$img_array[$img_total]=$elemento;$img_total++;
}


}
FAQ relacionadas
Volver al árbol de categoríasVolver al árbol de categorías