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.