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

Canales RSS

Lo más fresco

  1. Enlaces sobre desarrollo web Modificado
  2. Cadena aleatoria en PHP Modificado
  3. Recortar texto Nuevo

Sugerencias del chef

Lo más visitado

  1. Canales RSS
  2. Formato condicional según el día de la semana
  3. Enlaces sobre desarrollo web
  4. Recortar texto
  5. Convertir de minutos a horas
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 jueves 13 de agosto de 2026 (15:00:55 +0200) desde https://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.

Lorem ipsum dolor sit amet.

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