Foros del Web » Programando para Internet » PHP »

ordenar datos en directorio

Estas en el tema de ordenar datos en directorio en el foro de PHP en Foros del Web. hola. tengo una duda que por más que trato de dar solución no lo consigo. bueno. tengo un directorio donde a su vez hay tanto ...
  #1 (permalink)  
Antiguo 05/04/2007, 01:24
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
ordenar datos en directorio

hola. tengo una duda que por más que trato de dar solución no lo consigo. bueno. tengo un directorio donde a su vez hay tanto archivos como directorios. estos datos los muestro leyendo el directorio y los muestro en columnas, tales como:

nombre --- (donde se recogen los nombres bien del archivo bien del subdirectorio)

tamaño --- (donde recojo el tamaño del archivo o el tamaño global del subdirectorio)

fecha --- (donde se recoge la fecha en la que fue añadido el archivo al directorio o bien la fecha de creación del subdirectorio)

este listado lo muestra sin ningún tipo de orden. tal cual. yo lo que quiero es que, en el título de cada uno de esos campos, es decir, 'nombre', 'tamaño' y 'fecha', al pinchar en ellos, los resultados se muestren ordenados de menor a mayor según el campo en el que pinche.
he estado indagando y he tratado de obtenerlo con la función sort, pero no hay manera.
cómo obtengo el contenido del directorio y de cada campo. a través de este código:

leo lo que hay en el directorio (tanto archivos como subdirectorios):
Código PHP:
$path "directorio";
if (
$handle opendir($path)) 
    {
while (
false !== ($file readdir($handle))) 

        {

            if (
$file != "." && $file != ".."

            {    

             
$fName $file;

            
$file $path.'/'.$file
y una vez tengo ya el acceso para leerlos, los pongo en cada campo.

así, en el campo 'nombre', el código que utilizo para obtener los nombres de los ficheros o subdirectorios es el siguiente:
Código PHP:
if(is_file($file))////si es un fichero
{
print
"<a href='".$file."'>".$val."</a>";
}

if(
is_dir($file))////si es un directorio
{
print 
"<a href='index.php?mod=10&path=$file'>$val</a>";

en el campo 'tamaño' para calcular los tamaños de cada fichero o de cada subdirectorio, utilizo este código:
Código PHP:
 ////tamaño si es un archivo//////////
  
if(is_file($file))
                {
 
$tama = ( filesize"$file" ) );  

    
// formateo los numeros a dos decimales 
    
if ( $tama >= 1073741824 
    { 
        
$tama round$tama 1073741824 100 ) / 100 " " "Gb"
    }  
    else if ( 
$tama >= 1048576 
    { 
        
$tama round$tama 1048576 100 ) / 100 " " "Mb"
    }  
    else if ( 
$tama >= 1024 
    { 
        
$tama round$tama 1024 100 ) / 100 " " "Kb"
    }  
   else 
    { 
        
$tama $tama " " "b"
    }  
 echo (
"$tama"); 
   }

   
////final tamaño si es un archivo/////////

   
else

   
////tamaño si es un directorio//////////////

  
if(is_dir($file))
   {  
    
$tama = ( dirsize"$file" ) );  
    
// formateo los numeros a dos decimales 
    
if ( $tama >= 1073741824 
    { 
        
$tama round$tama 1073741824 100 ) / 100 " " "Gb"
    }  
    else if ( 
$tama >= 1048576 
    { 
        
$tama round$tama 1048576 100 ) / 100 " " "Mb"
    }  
    else if ( 
$tama >= 1024 
    { 
        
$tama round$tama 1024 100 ) / 100 " " "Kb"
    }  
    else 
    { 
        
$tama $tama " " "b"
    }  
 echo (
"$tama"); } 
por último, en el campo 'fecha', que recoge la fecha en la que fue subido el archivo o fue creado el subdirectorio, el código es este:
Código PHP:
echo date("j.n.Y H:i:s",filemtime($file)) 
bien, pues cómo hago esto? ya os digo que me he roto la cabeza con la función sort, creando un array pero no hay forma.
me ayudáis?
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 02:12.