Tema: FAQ's de PHP
Ver Mensaje Individual
  #138 (permalink)  
Antiguo 27/05/2005, 17:40
Avatar de The_Dark_Roy
The_Dark_Roy
 
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 3 meses
Puntos: 0
Dar Formato a la salida de filesize()

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.......
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl

Última edición por The_Dark_Roy; 01/09/2005 a las 14:54