Foros del Web » Programando para Internet » PHP »

Cuales son los ultimos archivos subidos (PHP)

Estas en el tema de Cuales son los ultimos archivos subidos (PHP) en el foro de PHP en Foros del Web. Se puede hacer lo mismo que con mysql, pero con PHP? Saber cuales son los ultimos archivos (subidos) de una carpeta?...
  #1 (permalink)  
Antiguo 19/03/2010, 17:54
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Cuales son los ultimos archivos subidos (PHP)

Se puede hacer lo mismo que con mysql, pero con PHP? Saber cuales son los ultimos archivos (subidos) de una carpeta?
  #2 (permalink)  
Antiguo 19/03/2010, 18:06
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 3 meses
Puntos: 89
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Creo que con esta función puedes obtener la fecha de modificación de un archivo. Luego, con esta función, haces un "mayor a menor" para obtener el último, que sería el mayor.

http://cl.php.net/manual/en/function.filemtime.php
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 19/03/2010, 18:35
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Ok. Parece la unica manera.

Yo empiezo a leer un array, tras abrir un directorio, y almaceno las fechas en un nuevo array. Pero como ligo las fechas al nombre del archivo?:

Cita:
foreach($listado as $archivo) {

$modificaciones[] = filemtime($archivo);

}
  #4 (permalink)  
Antiguo 19/03/2010, 18:43
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 3 meses
Puntos: 89
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Si no me equivoco, debería ser así :

Código PHP:
Ver original
  1. foreach($listado as $archivo) {
  2.  
  3. $modificaciones[] = array($archivo => filemtime($archivo));
  4.  
  5. }



Me avisas. Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 19/03/2010, 18:48
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Ok. Luego le agrego un ordenador numerico. Y lo imprimo (todo para testear).

Cita:
foreach($listado as $archivo) {

$modificaciones[] = array($archivo => filemtime($archivo));

};

$modificaciones = krsort($modificaciones);

foreach($modificaciones as $ultimos) { echo $ultimos; }
Pero el resultado que obtengo es: 1268094701

?

editado: Ah! Ya entendí. Tenía al reves la clave / valor. Primero, como clave, pongo el numero.
  #6 (permalink)  
Antiguo 19/03/2010, 18:54
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Listo. Tu funcion me devuelve un solo elemento. Así que use esto:

$modificaciones[filemtime($archivo)] = $archivo;

en vez de esto:
$modificaciones[] = array(array(filemtime($archivo) => $archivo);

Gracias!

  #7 (permalink)  
Antiguo 19/03/2010, 19:02
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 3 meses
Puntos: 89
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Eso es mucho mejor
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #8 (permalink)  
Antiguo 19/03/2010, 19:06
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Ok. Gracias. Ahora estoy viendo como ordenarlos. Supuestamente array_slice ordena el array de alguna manera.... ¿?

Entonces tengo esto:
Cita:
if (!empty($modificaciones)) {
//krsort($modificaciones);
$output = array_slice($modificaciones, 0, 3);

foreach($output as $ultimos) { echo "<img src='$ultimos' />"; } ;
};
  #9 (permalink)  
Antiguo 19/03/2010, 19:24
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Alguien puede asegurarme que krsort() ordena por fecha?.-

Creo que una cosa es orden numero, y otra orden de fechas... es así?
  #10 (permalink)  
Antiguo 20/03/2010, 08:49
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 3 meses
Puntos: 89
Respuesta: Cuales son los ultimos archivos subidos (PHP)

http://cl.php.net/manual/en/function.array-slice.php

array_slice extrae una porción del arreglo, por ende, no ordena nada...

http://cl.php.net/manual/en/function.krsort.php

krstort ordena el arreglo por medio de las keys, en orden inverso al que se encuentra originalmente, así que tampoco ordena por fecha.

Así que el algoritmo para ordenar tu arreglo como deseas, deberás hacerlo tú.

Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #11 (permalink)  
Antiguo 20/03/2010, 09:07
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Ok. Pero agradecería alguna ayuda.

Segun lo que veo en el manual, puedo obtener esto:
December 29 2002 22:16:23
con esto:
date ("F d Y H:i:s.", filemtime($filename))

Entonces...si ordeno por dia-mes-año / hora-minutos .... y krsort va a ordenar de mayor a menor, el algoritmo funcionaría. No?

nota: los valores devueltos por filemtime son un "timestamp" como este: 1203291283 . Se ordenarían verdaderamente de mayor a menor por fecha?

Última edición por mayid; 20/03/2010 a las 09:18
  #12 (permalink)  
Antiguo 20/03/2010, 09:36
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años
Puntos: 77
Respuesta: Cuales son los ultimos archivos subidos (PHP)

Si .

Etiquetas: ultimo
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 11:04.