Foros del Web » Programando para Internet » PHP »

seccionar archivos por su extension

Estas en el tema de seccionar archivos por su extension en el foro de PHP en Foros del Web. Hola, Les explico lo que deseo hacer: un listado de archivos por su extension,ya lo hago por medio del !is_dir y el filetipe() pero necesito ...
  #1 (permalink)  
Antiguo 04/04/2003, 00:55
 
Fecha de Ingreso: abril-2003
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Mensaje seccionar archivos por su extension

Hola, Les explico lo que deseo hacer:

un listado de archivos por su extension,ya lo hago por medio del !is_dir y el filetipe() pero necesito ordenarlos por su extension explico que me muestre primero los .gif, luego los .jpg y así consecutibamente....

Gracias.
  #2 (permalink)  
Antiguo 04/04/2003, 10:50
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 3 meses
Puntos: 8
Primero que nada tenes que cargar los archivos en un array (si los obtenes con las funciones de directorios eso no seria problema) y despues usas usort() con esta funcion que te hice.
Aca tenes un ejemplo:
Código PHP:
function ordenaporextension($a$b)
{
    
$exta strrchr($a".");              // obtiene la extensión de $a
    
$extb strrchr($b".");              // obtiene la extensión de $b
    
return strnatcasecmp($exta$extb);    // devuelve <0; =0 o >o
}

$archivos = array (
                   
"archivo1.gif",
                   
"archivo4.png",
                   
"archivo2.gif",
                   
"archivo3.jgp",
                   
"archivo3.gif",
                   
"archivo5.gif",
                   
"archivo1.jgp",
                   
"archivo2.jgp",
                   
"archivo4.gif",
                   
"archivo4.jgp",
                   
"archivo3.png",
                  );
                  
print_r($archivos);                     // muestra sin ordenar
usort($archivos"ordenaporextension"); // aqui se ordena segun la funcion ordenaporextension()
print_r($archivos);                     // muestra ordenado 
Algunos links!
usort ordena una matriz segun una funcion de comparacion definida por el usuario
http://www.php.net/usort

strrchr busca la ultima aparicion de una cadana
http://www.php.net/strrchr

strnatcasecmp compara 2 cadenas segun el ordena natural ( una forma facil de definir orden natural es "la que esta primero en el abecedario")
http://www.php.net/strnatcasecmp

print_r es solamente para mostrarte info de una var.
http://www.php.net/print_r

Saludos.
  #3 (permalink)  
Antiguo 04/04/2003, 10:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno el print_r() para el ejemplo (no lo conocia xd) .. Pero si quieres personalizar la presentación de esos datos del array sería bueno que usases un bucle foreach() por ejemplo para recorrerlo ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 04/04/2003, 11:05
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 3 meses
Puntos: 8
Ni hablar!
Vos lo dijiste cluster, para presentar la informacion hay que usar bucles.

Tambien esta var_dump y var_export. Este ultimo me gusta usar en los mensajes de error de algunas funciones para ejemplificar como deberia ser algun parametro o cosas asi.

Chau!
  #5 (permalink)  
Antiguo 04/04/2003, 11:08
 
Fecha de Ingreso: abril-2003
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Gracias, creo que con esta información puedo hacer lo que necesito

les enviare la url para que vean como queda!!!!
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:38.