Questa è una funzioncina che ho fatto un po' di tempo fa!
Molto semplice! Puoi decidere il numero di cifre da visualizzare dopo il separatore ed anche impostare un separatore personalizzato
Codice PHP:
<?PHP
function formatSize( $size , $precision = 2 , $separator = ',' ) {
// Sappiamo che 1024 byte formano un kilobyte;
// 1024 kilobyte un MB ;
// 1024 MB sono uguali a 1 GB e
// 1024 GB sono pari a un TB. Vediamo come possiamo
// sfruttare questa info sapendo che il
// size passato è espresso in Byte
// Per prima cosa creiamo un array con le
// unità di misura delle dimensioni
$sizes[] = 'bytes' ;
$sizes[] = 'KB' ;
$sizes[] = 'MB' ;
$sizes[] = 'GB' ;
$sizes[] = 'TB' ;
// Ora con un for ci avvicianiamo
// all'unità di misura più grande
$i = 0 ;
while( $size >= 1024 ) {
$size = $size/1024 ;
$i++ ;
}
return str_replace( '.' , $separator , round( $size , $precision ) ) . ' ' . $sizes[$i] ;
}
echo formatSize( 3733644 , ,'.' ) ;
?>
ATTENZIONE
La funzione non recupera le dimensioni del file! Le stesse vanno passate come argomento alla funzione! Ciao!