PHP: ¿Cómo dar formato de salida (Kb, Mb, Gb) a la funcion filesize() y con la precision que yo quiera?
De Foros del Web
Código PHP:
function tam_arch($tam,$pre){ if($pre==0){ $pre=-1; }else if($pre<0){ $pre=2; } $tam/=1024; if($tam>1048576){ $tam_a=$tam; $tam_a/=1048576; if($tam_a>1000){ $tam_a=substr($tam_a,0,5+$pre)." GB."; }else if($tam_a>100){ $tam_a=substr($tam_a,0,4+$pre)." GB."; }else if($tam_a>10){ $tam_a=substr($tam_a,0,3+$pre)." GB."; }else{ $tam_a=substr($tam_a,0,2+$pre)." GB."; } }else if($tam>1024){ $tam_a=$tam; $tam_a/=1024; if($tam_a>1000){ $tam_a=substr($tam_a,0,5+$pre)." MB."; }else if($tam_a>100){ $tam_a=substr($tam_a,0,4+$pre)." MB."; }else if($tam_a>10){ $tam_a=substr($tam_a,0,3+$pre)." MB."; }else{ $tam_a=substr($tam_a,0,2+$pre)." MB."; } }else{ $tam_a=$tam; if($tam_a>1000){ $tam_a=substr($tam_a,0,5+$pre)." KB."; }else if($tam_a>100){ $tam_a=substr($tam_a,0,4+$pre)." KB."; }else if($tam_a>10){ $tam_a=substr($tam_a,0,3+$pre)." KB."; }else{ $tam_a=substr($tam_a,0,2+$pre)." KB."; } } return $tam_a; }
la salida sera dependiendo del tamaño y precisión con que se haya configurado, lo normal es que sea 12 decimales de precisión la salida de la función arroja algo como esto 123.45KB , 12.34MB, 123.345.GB.
como se usa??
Código PHP:
$tam_a=filesize('./galerias/imagen.jpg'); $pre=2; $tam=tam_arch($tam_a,$pre);
La variable $tam ya estará formateada
por ejemplo
precisión 0: 1 KB o 1 MB 1 GB
precisión 1: 12.3 KB o 123.2 MB o 1.2G B
precisión 2: 12.12 KB o 123.45 MB o 12.12 GB
--The_dark_roy 27 May 2005
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
