Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/10/2007, 18:34
mhatter
 
Fecha de Ingreso: septiembre-2007
Mensajes: 52
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: Mostrar imagenes de directorio

Supongo que lo que buscas es una especie de paginación. El tema de las paginaciones suele surgir con frecuencia por lo que te sugiero que busques un poco al respecto si quieres profundizar.

Por ahora te muestro un ejemplo de paginación basado en el código que has publicado, que espero que sea fácil de seguir y estudiar :):

Código PHP:
<?php

// Extensiones de imágenes válidas
$extensiones = array ('.jpg''.png''.gif');

// Número de imágenes por página
$imgpp 10;

// Directorio de donde leer las imágenes
$dir './';


if (isset (
$_GET['pagina']))
    
$pag = (int) $_GET['pagina'];
else
    
$pag 1;


$directorio opendir($dir);

$num 0;
$i 0;

$entradas = array ();
while (
$archivo readdir($directorio)) {
    if (
$archivo == '.' || $archivo == '..')
        echo 
' ';
    elseif (
in_array (substr ($archivo, -4), $extensiones)) {
        
$num++;
        
$i++;
        
$entradas[$archivo] = filemtime($dir."/".$archivo);
    }
}

arsort ($entradas);

closedir ($directorio);

// Extraer solo las imágenes que corresponden a la página actual
$total count ($entradas);
$comienzo = ($pag 1) * $imgpp;
$entradas array_slice ($entradas$comienzo$imgpp);

// Imprimir ese grupo de imágenes extraído en el paso anterior
foreach ($entradas as $archivo => $timestamp) {
    echo 
"<img src=\"$archivo\">";
}

// Enlaces de paginación
$total_paginas ceil ($total $imgpp);
echo 
'<p>Páginas: ';
for (
$i 1$i <= $total_paginas$i++) {
    echo 
'<a href="' $_SERVER['PHP_SELF'] . "?pagina=$i\">$i</a> ";
}
echo 
'</p>';

?>
En resumen, tu código ya hacía la mayor parte del trabajo. El código de la paginación consiste simplemente en extraer aquellos resultados que nos interesan en la página actual y mostrar solo ésos. En el anterior ejemplo se hace esto usando array_slice(), pero hay un sinfín de alternativas más.

Si indagas un poco más, probablemente encuentres muchas otras opciones interesantes que puedes aplicar a problemas parecidos.