Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/07/2009, 20:31
Avatar de MaTyS
MaTyS
 
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 16 años
Puntos: 18
Ayuda tamaño de archivos ordenados

Hola miren tengo este codigo:
Código:
<?
function GetSize($file, $display = 0) 
{ 

    global $size; 
     
    switch ($display) { 
        case 1: 
            $method = array('bytes', 'Kilobytes', 'Megabytes', 'Gigabytes'); 
            break; 
         
        case 2: 
            $method = array('<acronym title="bytes">b</acronym>', '<acronym title="Kilobytes">Kb</acronym>', 
            '<acronym title="Megabytes">Mb</acronym>', '<acronym title="Gigabytes">Gb</acronym>'); 
        break; 
         
        case 3: 
            $method = array_fill(0, 4, '');
            break; 
        
        default: 
            $method = array('b','Kb','Mb','Gb'); 
        break; 
    } 
     
    $filepath = str_replace('\\', '/', urldecode($file)); 
     
    if(is_numeric($filepath)) { 
        $size = $filepath;

    } elseif (!file_exists($filepath)) { 
        return 'El archivo especificado no existe'; 
    } elseif (!is_file($filepath) && !is_dir($filepath)) { 
            return '"'.$file.'" no es un fichero o directorio v?lido'; 
    } else { 
        if ($dir = @opendir($filepath)) { 
            while ($file = readdir($dir)) { 
                if (is_dir($filepath.'/'.$file)) { 
                    if ($file != '.' && $file != '..') { 
                        $size += GetSize($filepath."/".$file, 3); 
                    } 
                } else { 
                    $size += filesize ($filepath.'/'.$file); 
                } 
            } 
            closedir($dir); 
        } else { 
            $size += filesize($filepath); 
        } 
    } 

    if ($size <= 1024) { 
        return $size . ' ' . $method[0]; 
    } else { 
        if ($size >= pow(1024, 4)) { 
            return round($size/pow(1024, 4), 2) . ' ' . $method[4]; 
        } elseif ($size >= pow(1024, 3)) { 
            return round($size/pow(1024, 3), 2) . ' ' . $method[3]; 
        } elseif ($size >= pow(1024, 2)) { 
            return round($size/pow(1024, 2), 2) . ' ' . $method[2]; 
        } else { 
            return round($size/1024, 2) . ' ' . $method[1]; 
        } 
    } 

    clearstatcache(); 
} 
echo GetSize('MIFICHERO.html'); // un ejemplo
?>
 
Lo que hace es sacar el tamaño del archivo en B, KB, MB o GB.
Pero envez de utilizarlo en un archivo yo lo utilizo en varios, y lo que no puedo lograr es que no lo ordene.
Osea los ordena por lo que pesan, por ejemplo primero pone 1 byte, 2 byte 5 mb, 1 gb, y asi no lo pones segun los archivos.
Si quieren ver a lo que me refiero entren a:
http://blisse-games.com.ar/biblioteca.php
Saludos.