borrame.com - Colección particular de recortes de código y documentación para programación web

Canales RSS

Lo más fresco

  1. Bookmarklets Nuevo
  2. Recetario básico para CakePHP/2 Nuevo
  3. Certificado auto-firmado Nuevo

Sugerencias del chef

Lo más visitado

  1. Fecha y hora
  2. Dar formato a un número
  3. Reiniciar secuencia
  4. Vaciar un esquema
  5. Certificado auto-firmado
Compartir esta página

Bytes en formato legible

Esta función permite convertir de bytes a KB, MB, GB... y dar formato al número resultante.

/** * Da formato a una cantidad en bytes usando la unidad más adecuada * * @param int|float $bytes Cantidad en bytes * @param int $decimales Cuántos decimales mostrar si no es entero * @param string $separador_decimal Separador decimal * @param string $separador_miles Separador de miles * @return string|null * * @version 2013-12-04 */ function bytes2txt($bytes, $decimales=2, $separador_decimal=',', $separador_miles='.'){     $unidades = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');     if( is_numeric($bytes) && !is_nan($bytes) && is_finite($bytes) ){         $salida = abs($bytes);         for($i=0, $len=8 /* count($unidades)-1 */; $i<$len && $salida>=1024; $i++){             $salida /= 1024;         }         $salida = round($salida, $decimales);         $decimales = ((int)$salida==$salida) ? 0 : $decimales; // Si es entero no mostramos decimales         return ($bytes<0 ? '-' : '') . number_format($salida, $decimales, $separador_decimal, $separador_miles) . ' ' . $unidades[$i];     }else{         return null;     } }

El primer argumento es el tamaño en bytes. El resto son opcionales y permiten controlar cómo se mostrará la cifra.

La lista de unidades se ha tomado del artículo sobre «Byte» de la Wikipedia en español así que es probable que sea correcta.

Recordamos a nuestros amables lectores que la función de PHP para averiguar el tamaño de un archivo es filesize().

Ejemplo

Antes:
406951191
Después:
388,10 MB

No hay color.

Historial

v2013-12-04
Las cifras negativas ya no se muestran siempre en bytes.
Ahora devuelve null si no recibe un número válido.
Pequeña optimización en el bucle.
Documentación en formato phpdoc.
v2008-04-23
Arreglos cosméticos y pequeña optimización en el bucle.
v2007-05-05
Primera versión.

Esta página ha sido impresa el sábado 23 de septiembre de 2017 (02:22:40 +0200) desde http://borrame.com/recortes/php/bytes-legibles.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).

© 2005-2017 by Álvaro González (alvaro.es) • Burgos (España) • borrame.com