Tienes una carpeta llena de fotos... quieres poner un enlace a todas. Una opción seria dejar el index predeterminado que hace apache (O el server que uses) de tu carpeta. Esa opción es horrible, porque no te da control, pero es sencilla porque no tienes que cambiar nada a mano. Con PHP, en cambio, tienes la posibilidad de ver todos los archivos de una carpeta y listarlos. Esa opción es la que les voy a mostrar ahora.
PHP tiene la capacidad de crear un array con todos los archivos de una carpeta en nuestro servidor. En este script analizaremos el contenido de una carpeta y crearemos una tabla con la lista de los archivos que la componen.
Código :
<?php
echo "<h3>Index</h3>\n";
echo "<table>\n";
$directorio = opendir(".");
while ($archivo = readdir($directorio))
{
$nombreArch = ucwords($archivo);
$nombreArch = str_replace("..", "Atras", $nombreArch);
echo "<tr>\n<td>\n<a href='$archivo'>\n";
echo "<img src='./imagenes/carpeta.png' alt='Ver $nombreArch'";
echo " border=0>\n";
echo "<b> $nombreArch</b></a></td>\n";
echo "\n</tr>\n";
}
closedir($directorio);
echo "</table>\n";
?>Explico brevemente:
$directorio = opendir("."); Abrimos el directorio raíz
while ($archivo = readdir($directorio)) La var archivo es igual a lo leido en el direcorio
echo "<tr>\n<td>\n<a href='$archivo'>\n"; Link al archivo
Lógicamente después le agregas estilos para que quede mas presentable

Listar Carpetas en un Array [php]
Maikel :
Listar Carpetas en un Array [php]
Si realmente esta mucho mejor hecho que el mio
Por Rein el 21 de Marzo de 2007
Por Luci el 04 de Abril de 2007
Por ejemplo coges la variable donde se almacena el nombre del archivo, lees sus 3 ultimos caracteres y si es igual a php pos fuera.
Saludos y como he dicho, soy un poco novato, asi es como lo haria yo en Visual, que es el que conozco.
Por jc.gonzalez el 13 de Junio de 2007
Por lcast el 27 de Junio de 2007
Por dia el 20 de Septiembre de 2007
Por Listado php con js e el 17 de Octubre de 2007
Pueden ver su resultado en http://www.mtt.cl/prontus_mtt/estudios/21 Xinergia Laboral/Informe Xinergia (E)/
El script lo pueden bajar desde http://www2.netexplora.com/j3m/lista.rar
Por Gerardo el 05 de Diciembre de 2007
esta es la forma correcta de pasar sobre los directorios de los archivos..
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
el operador !== no hace la comprobacion de que el tipo de retorno es realmente booleano y no una cadena vacia o 0... que con el == puede pasar como falso.
Por manudo el 29 de Enero de 2008
Por ricardo el 17 de Julio de 2009
Por yense el 27 de Octubre de 2009
Por Ricardo el 13 de Julio de 2011
Por RicardoIII el 05 de Agosto de 2011
Por RicardoIII el 05 de Agosto de 2011
<?php
//Establezco el numero de columnas
$columns = 3;
echo "<table width=\"100%\" align=\"center\" border=\"0\" cellpadding=\"3\" cellspacing=\"3\">\n";
for($i = 0; $i < $directorio; $i++) {
if($i % $columns == 0) {
//SI NO HAY RESTO SIGNIFICA QUE INICIAMOS UNA NUEVA FILA
echo "<tr>\n";
}
echo "<td width='15%' valign='top'>ACA COLOCAMOS EL CODIGO PARA LISTAR LOS DIRECTORIOS O CARPETAS</td>\n";
if(($i % $columns) == ($columns - 1) || ($i + 1) == $num_rows) {
//SI EL RESTO ES UNO
//O SI NO HAY NADA MAS A LA IZQUIERDA
//ES EL FINAL DE LA TABLA
echo "</TR>\n";
}
}
echo "</table>\n";
?>
Por RicardoIII el 05 de Agosto de 2011
<?php
//Establezco el numero de columnas
$columns = 2;
echo "<table width='100%' align='center' border='1' cellpadding='3' cellspacing='3'>";
$directorio = opendir(".");
while ($archivo = readdir($directorio))
{
$nombreArch = ucwords($archivo);
$nombreArch = str_replace("..", "Atras", $nombreArch);
for($i = 0; $i < $directorio; $i++) {
if($i % $columns == 0) {
//SI NO HAY RESTO SIGNIFICA QUE INICIAMOS UNA NUEVA FILA
echo "<tr>";
}
echo "<td width='15%' valign='top'>";
echo "<a href='$archivo'>";
echo "<img src='./appserv/dir.png' alt='Ver $nombreArch'";
echo " border=0>";
echo "<b> $nombreArch</b></a>
</td>";
if(($i % $columns) == ($columns - 1) || ($i + 1) == $directorio) {
//SI EL RESTO ES UNO
//O SI NO HAY NADA MAS A LA IZQUIERDA
//ES EL FINAL DE LA TABLA
echo "</TR>";
}
}
}
closedir($directorio);
echo "</table>";
?>
Por halguien el 20 de Agosto de 2011
Por romannovich el 02 de Septiembre de 2011
ejemplo
pero necesito que el numero de archivos(variable) siempre se muestre en tres columnas y que sea en orden alfabetico, ya probe con "sort(); pero no lo hace.
espero su respuesta y este es el codigo que tengo:
"<style type="text/css">
body {
background-image: url(imagenes/fondo06.png);
background-repeat: repeat-y;
background-color: #FFF;
}
h3 {font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
color:#FFF;
}
a {
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
font-weight: bold;
}
a:link {
text-decoration: none;
color: #FFF;
}
a:visited {
text-decoration: none;
color: #FFF;
}
a:hover {
text-decoration: none;
color: #FFF;
}
a:active {
text-decoration: none;
color: #FFF;
}
body,td,th {
color: #FFF;
}
</style>
<table width="918" height="230" border="0" align="center" id="tbl1">
<tr>
<td height="226" colspan="5"> <?php
$dir = (isset($_GET['dir']))?$_GET['dir']:"/";
$directorio=opendir($dir);
echo "<b>Directorio actual:</b><br>$dir<br>";
echo "<b>Archivos:</b><br>";
while ($archivo = readdir($directorio)) {
if($archivo == '.')
echo "<a href=\"?dir=.\">$archivo</a><br>";
elseif($archivo == '..'){
if($dir != '.'){
$carpetas = split("/",$dir);
array_pop($carpetas);
$dir2 = join("/",$carpetas);
echo "<a href=\"?dir=$dir2\">$archivo</a><br>";
}
}
elseif(is_dir("$dir/$archivo"))
echo "<a href=\"?dir=$dir/$archivo\">$archivo</a><br>";
else echo "<a href=\"$dir/$archivo\">$archivo</a><br>";
}
closedir($directorio);
?>
</td>
</tr>
</table> "
deje mis estilos en el php porque no quiero que se vea el css y tampoco logre esconder el php ni el fav.ico
cualquier ayuda se agradece