Foros del Web » Programando para Internet » PHP »

Ordenar archivos por fecha de ultima modificacion

Estas en el tema de Ordenar archivos por fecha de ultima modificacion en el foro de PHP en Foros del Web. Tengo el siguiente script que utilizo para una galeria de imagen, pagina, etc. El tema es que no logro hacer que me muestra la ultima ...
  #1 (permalink)  
Antiguo 27/09/2006, 07:57
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 4 meses
Puntos: 0
Ordenar archivos por fecha de ultima modificacion

Tengo el siguiente script que utilizo para una galeria de imagen, pagina, etc. El tema es que no logro hacer que me muestra la ultima imagen que subo, al principio, proble con sort - usort, etc, he visto los post del foro y no he podido tener el resultado aplicado a mi codigo, lo dejo completo y agradezco desde ya su ayuda.

Código:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>

<body bgcolor="#000000" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<table width="100%" border="0" cellspacing="10" cellpadding="0">
  <tr> 
    <td><?php
//Declaramos el objeto DIR
$path="imgs/thumbs";
$path1="imgs";
$directorio = dir($path);
$directorio->read();
$directorio->read(); 
//Guardar todos los nombres de imágenes en un array
while($entrada = $directorio->read())
{
    $a++;

    $imagen[$a] = $entrada;
}
$directorio->close();  
sort($imagen); 
reset($imagen); 


//Contar el número de páginas a 30 imágenes por página
$paginas = ceil($a/30);

if(!isset($page)){
    $page = "1";
}  

//Calculo de la página donde estamos
$pag = 30*($page-1); 

//Imprimir imágenes
//tabla de 6 x 5
echo "<table border=\"0\" width=\"\" cellpadding=\"3\" cellspacing=\"0\" align=\"center\">";
for ($i=1; $i<=5; $i++)
{
    echo "<tr align=\"center\">";
    for ($e=1; $e<=6; $e++){
        $pag++;



$imagenf = "$path/$imagen[$pag]";
$imageng = "$path1/$imagen[$pag]";
if (is_file($imagenf)){

echo "<td><a href='#' onClick=\"MM_openBrWindow('$imageng','Galeria','scrollbars=no,resizable=yes,width=600,height=600')\"><img src='$imagenf'></a></td>";
    }
}
    echo "</tr>";
} 

echo "</table>";
?><b><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
      </font></b></td>
  </tr>
  <tr align="right"> 
    <td><b><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">&raquo; 
      P&aacute;gina: <?php
//Números de paginación
for ($u=1; $u<=$paginas; $u++)
{
    echo " <a href=\"album.php?&page=$u\">$u</a>  ";
} 
?></font></b></td>
  </tr>
</table>
</body>
</html>
  #2 (permalink)  
Antiguo 27/09/2006, 12:38
 
Fecha de Ingreso: agosto-2006
Mensajes: 41
Antigüedad: 17 años, 8 meses
Puntos: 2
Hola eximer,

yo haría algo así

Código PHP:
<?php
function getFicherosOrdenadosPorFecha($path) {
    
$directorio dir($path);
    
$directorio->read(); 
    
//Guardar todos los nombres de imágenes en un array
    
$a 0;
    while(
$entrada $directorio->read()) {
        if (
$entrada != "." && $entrada != "..") {
          
$imagen[$a]['fecha_modificacion'] = filemtime($path."/".$entrada);
          
$imagen[$a]['nombre'] = $entrada;
          
$a++;
        }
    }
    
$directorio->close();  
    
sort($imagen); 
    
reset($imagen); 
    
    
$arr = array();
    for (
$i=0;$i<count($imagen);$i++) {
        
$arr[] = $imagen[$i]['nombre'];
    }
    
    return 
$arr;
}
$path="imagenes/sites";
print_r(getFicherosOrdenadosPorFecha($path));
?>
Albert Lanchas
  #3 (permalink)  
Antiguo 27/09/2006, 15:50
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias por responder, pero no pude implementar el codigo enviado, yo he dejado el codigo completo. Agradezco nuevamente su ayuda. Gracias.
  #4 (permalink)  
Antiguo 27/09/2006, 17:54
 
Fecha de Ingreso: febrero-2004
Mensajes: 138
Antigüedad: 20 años, 1 mes
Puntos: 2
Yo creo que alblan fue bastante claro:

Te dijo que ordenes tus ficheros obteniendo su fecha de modificacion con la funcion filemtime(), no es asi?
__________________
De mucho estudiar nadie se murió, pero mas vale no arriesgarse
  #5 (permalink)  
Antiguo 27/09/2006, 18:46
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 4 meses
Puntos: 0
Tal vez le quede claro a alguien con un nivel de conocimientos superior al mio, por lo que agradezco nuevamente todo comentario y por supuesto si alguien me ayuda aplicandolo al condigo original que ya tengo, se agradecera.
  #6 (permalink)  
Antiguo 27/09/2006, 18:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 138
Antigüedad: 20 años, 1 mes
Puntos: 2
Ah, disculpa. Yo pense que habías entendido el código que pusistes (o sea que conocias lo que hacia) y por eso dije eso =S

Saludos!
__________________
De mucho estudiar nadie se murió, pero mas vale no arriesgarse
  #7 (permalink)  
Antiguo 27/09/2006, 18:59
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 4 meses
Puntos: 0
Por supuesto que estas disculpado!!!. Saludos. Quedo por aqui, si alguien se toma la molestia.
  #8 (permalink)  
Antiguo 28/09/2006, 01:28
 
Fecha de Ingreso: agosto-2006
Mensajes: 41
Antigüedad: 17 años, 8 meses
Puntos: 2
Eximer,

integrando la función con tu código podría quedar así:

Código PHP:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>

<body>
<table width="100%" border="0" cellspacing="10" cellpadding="0">
  <tr> 
    <td>
<?php
    
function getFicherosOrdenadosPorFecha($path) {
    
$directorio dir($path);
    
$directorio->read(); 
    
//Guardar todos los nombres de imágenes en un array
    
$a 0;
    while(
$entrada $directorio->read()) {
        if (
$entrada != "." && $entrada != "..") {
          
$imagen[$a]['fecha_modificacion'] = filemtime($path."/".$entrada);
          
$imagen[$a]['nombre'] = $entrada;
          
$a++;
        }
    }
    
$directorio->close();  
    
sort($imagen); 
    
reset($imagen); 
    
    
$arr = array();
    for (
$i=0;$i<count($imagen);$i++) {
        
$arr[] = $imagen[$i]['nombre'];
    }
    
    return 
$arr;
}
$path="imgs/thumbs";
$imagen getFicherosOrdenadosPorFecha($path);
$path1="imgs";

//Contar el número de páginas a 30 imágenes por página
$paginas ceil(count($imagen)/30);

if(!isset(
$page)){
    
$page "1";
}  

//Calculo de la página donde estamos
$pag 30*($page-1); 

//Imprimir imágenes
//tabla de 6 x 5
echo "<table border=\"0\" width=\"\" cellpadding=\"3\" cellspacing=\"0\" align=\"center\">";
for (
$i=1$i<=5$i++)
{
    echo 
"<tr align=\"center\">";
    for (
$e=1$e<=6$e++){
        
$pag++;



$imagenf "$path/$imagen[$pag]";
$imageng "$path1/$imagen[$pag]";
if (
is_file($imagenf)){

echo 
"<td><a href='#' onClick=\"MM_openBrWindow('$imageng','Galeria','scrollbars=no,resizable=yes,width=600,height=600')\"><img src='$imagenf'></a></td>";
    }
}
    echo 
"</tr>";


echo 
"</table>";
?><b><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
      </font></b></td>
  </tr>
  <tr align="right"> 
    <td><b><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">&raquo; 
      P&aacute;gina: <?php
//Números de paginación
for ($u=1$u<=$paginas$u++)
{
    echo 
" <a href=\"album.php?&page=$u\">$u</a>  ";

?></font></b></td>
  </tr>
</table>
</body>
</html>
Albert Lanchas
  #9 (permalink)  
Antiguo 28/09/2006, 08:03
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 4 meses
Puntos: 0
Muchas gracias por responder, por algun motivo no pone la ultima imagen que cargo con uploading al principio de la pagina 1 (dentro de lo que es la paginacion). Especificamente lo que busco es que no importa que fecha tenga la imagen sino cuando se sube, que la ultima en subirse sea la primera en verse. Alguna idea?

Última edición por eximer; 28/09/2006 a las 08:17
  #10 (permalink)  
Antiguo 28/09/2006, 12:32
 
Fecha de Ingreso: agosto-2006
Mensajes: 41
Antigüedad: 17 años, 8 meses
Puntos: 2
Pues eso no vas a poder hacerlo con el filesystem sino que tendrás que guardarte en base de datos esa información y luego ordenar las imágenes por ese dato

Albert Lanchas
  #11 (permalink)  
Antiguo 28/09/2006, 14:36
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 4 meses
Puntos: 0
No se puede??. Igualmente Alblan te agradezco la voluntad y el tiempo que dedicaste a responder mis mensajes.
  #12 (permalink)  
Antiguo 28/09/2006, 14:43
 
Fecha de Ingreso: febrero-2004
Mensajes: 138
Antigüedad: 20 años, 1 mes
Puntos: 2
Si se puede.

Cuando subas una foto, guarda los datos de esa foto junto con la fecha de subida en una BD, y luego cuando haces la consulta, ordenas los resultados por esa fecha

Saludos!
__________________
De mucho estudiar nadie se murió, pero mas vale no arriesgarse
  #13 (permalink)  
Antiguo 28/09/2006, 14:48
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 4 meses
Puntos: 0
Entendi lo que dijo Alblan, obviamente lo que digo es que aparentemente no se puede hacer el lo que queria hacer, sin BD, como es el código del script. Para hacerlo con BD ni siquiera me hace falta la fecha, se puede manejar con el ID. Igualmente gracias tambien!!! y saludos!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:08.