Código:
Lo que hace es sacar el tamaño del archivo en B, KB, MB o GB.<? 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 ?>
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.