PROVA con filesize

if( ! ( $dp = opendir ( "$dir" ) ) )
die ( "Non riesco a esplorare il contenuto" );

// contatore per gestire i colori della tabella
$conta = 1;


while (false !== ($file = readdir($dp))) {
if ( is_file ( $file ) ) {



if ( bcmod ( $conta , 2 ) == 0 ) {//cambio colore sfondo ogni riga
$colore = "#CCCCCC";
} else {
$colore = "#FFFFFF";
} ?>
<tr bgcolor="<? echo $colore; ?>">
<td align="left"><? echo $file; ?></td>
<td align="left"><? echo $indirizzo.$file; ?></td>
<td align="center"><? echo date ( "d/m/Y H:i:s", filemtime ( $file ) ); ?></td>
<td align="left"><? echo sprintf("%u", formatbytes(filesize($file)))." Mb ";..........
..............
$conta++;
.....

con

//funzione per formattare byte
function formatbytes($val, $digits = 3, $mode = "IEC", $bB = "B"){ //$mode == "SI"|"IEC", $bB == "b"|"B"
$si = array("", "k", "M", "G", "T", "P", "E", "Z", "Y");
$iec = array("", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi", "Yi");
switch(strtoupper($mode)) {
case "SI" : $factor = 1000; $symbols = $si; break;
case "IEC" : $factor = 1024; $symbols = $iec; break;
default : $factor = 1000; $symbols = $si; break;
}
switch($bB) {
case "b" : $val *= 8; break;
default : $bB = "B"; break;
}
for($i=0;$i<count($symbols)-1 && $val>=$factor;$i++)
$val /= $factor;
$p = strpos($val, ".");
if($p !== false && $p > $digits) $val = round($val);
elseif($p !== false) $val = round($val, $digits-$p);
return round($val, $digits) . " " . $symbols[$i] . $bB;
}