Pregunta: como puedo dar formato a la salida de la funcion filesize() de tal forma que me muestre en Kb, Mb y con la precision que yo quiera?
Respuesta: con esta funcion.
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 presicion con que se haya configurado, lo normal es que sea 12 decimales de presicion la salida de la funcion 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 estara formateada
por ejemplo
presicion 0: 1 KB o 1 MB 1 GB
presicion 1: 12.3 KB o 123.2 MB o 1.2G B
presicion 2: 12.12 KB o 123.45 MB o 12.12 GB
Ojala les ayude es algo facil pero cuando uno esta apurado y con pega hasta el cuello.......