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

Canales RSS

Lo más fresco

  1. Reemplazar selección con JavaScript Nuevo
  2. ¿Esta IP pertenece a esta red? Modificado
  3. Mozilla Firefox Modificado

Sugerencias del chef

Lo más visitado

  1. Fecha y hora
  2. Dar formato a un número
  3. Rotar logs en Windows
  4. Eliminar formato en Excel
  5. Caché del navegador
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.

/*
 * Recibe una cantidad en bytes y devuelve una cadena en formato legible
 */

function bytes2txt($tamano, $decimales=2, $separador_decimal=',', $separador_miles='.'){ // v2008-04-23
    $unidades = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');

    for($i=0, $len=count($unidades)-1; $i<$len && $tamano>=1024; $i++){
        $tamano /= 1024;
    }

    $tamano = round($tamano, $decimales);
    $decimales = ((int)$tamano==$tamano) ? 0 : $decimales; // Si es entero no mostramos decimales

    return number_format($tamano, $decimales, $separador_decimal, $separador_miles) . ' ' . $unidades[$i];
}

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

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 lunes 21 de mayo de 2012 (03:22:44 +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-2011 by Álvaro G. Vicario (alvaro.es) • Burgos (España) • borrame.com