Este tamaño, en el caso de que el fichero sea grande, es posible que lo queramos representar en kilobytes, megabytes..., o simplemente dejar que la función decida la magnitud más adecuada.
En este caso hemos realizado una función que recoge esta posibilidad:
function convertFileSize( $file , $size =null, $decimals =2, $dec_sep = '.' , $thousands_sep = ',' ){ if (! is_file ( $file )){ return "El fichero no existe" ; } $bytes = filesize ( $file ); $sizes = 'BKMGTP' ; if (isset( $size )){ $factor = strpos ( $sizes , $size [0]); if ( $factor ===false){ return "El tamaño debe ser B, K, M, G, T o P" ; } } else { $factor = floor (( strlen ( $bytes ) - 1) / 3); $size = $sizes [ $factor ]; } return number_format( $bytes / pow(1024, $factor ), $decimals , $dec_sep , $thousands_sep ). ' ' . $size ; } |
Los parámetros son:
$file: ruta completa del fichero
$size: magnitud en la que queremos obtener el resultado. Si lo dejamos a null hará el cálculo la propia función
$decimals: número de decimales que queremos que nos muestre. Por defecto nos mostrará 2.
$dec_sep: separador decimal. Por defecto coge el punto que es el que se usa en inglés.
$thousand_sep: separador de miles. Por defecto coge la coma que es el que se usa en inglés.
No hay comentarios:
Publicar un comentario