Foros del Web » Programando para Internet » PHP »

filesize() por cuanto tengo que dividirlo para obtener Kb

Estas en el tema de filesize() por cuanto tengo que dividirlo para obtener Kb en el foro de PHP en Foros del Web. Es una pregunta algo fome pero me entro la duda despues de ver que el tamaño no me concuerda lo que yo hago: Código PHP: ...
  #1 (permalink)  
Antiguo 26/05/2005, 13:28
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 10 meses
Puntos: 0
filesize() por cuanto tengo que dividirlo para obtener Kb

Es una pregunta algo fome pero me entro la duda despues de ver que el tamaño no me concuerda lo que yo hago:
Código PHP:
$tam=substr((filesize($fila[path_galeria]."/".$file)/1024),0,5);
if(
$tam>1024){
    
$tam=($tam/1024)." MB";
}else{
    
$tam.=" Kb";

alguna opinion?
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
  #2 (permalink)  
Antiguo 26/05/2005, 13:34
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años, 6 meses
Puntos: 2
si filesize da el tamaño en bytes debes dividirlo por 1024 para tener KB, y otra vez por 1024 (es decir, 2048) para obtener MB... otra vez por 1024 obtenes GB y otra vez por 1024 TB.
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 26/05/2005, 13:37
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
¿por qué el substr()???.

Chekate las funciones que vienen en los comentarios de la documentación oficial: www.php.net/filesize ... muy buenas y completas...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 26/05/2005, 14:07
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 10 meses
Puntos: 0
Cita:
Iniciado por jam1138
¿por qué el substr()???.

Chekate las funciones que vienen en los comentarios de la documentación oficial: www.php.net/filesize ... muy buenas y completas...

Cuando divides dependiendo de la precicion con que este configurado php, arroja decimales que no me sirven por lo tanto solo con substr($valor_o_string, $empiezo, $numero_que_deseo_dejar)

satisfecho?
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
  #5 (permalink)  
Antiguo 26/05/2005, 17:58
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Primero dejame decirte que no me gustó que emplearas la palabra "satisfecho"... espero una aclaración.

Por lo demás... puedes redondear valores... el uso de substr() solo te causará errores matemáticos.. ¿tu pregunta original???...

www.php.net/round
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 26/05/2005, 20:39
 
Fecha de Ingreso: agosto-2004
Mensajes: 95
Antigüedad: 20 años, 2 meses
Puntos: 2
Aunque es casi lo mismo
solo le quite el substr que no se que es lo que hace alli ....

Código PHP:
<?
$archivo 
"archivo.jpg";
$tamanofilesize($archivo)/1024;
$r=($tamano>1024?round($tamano/1024,2)." MB":round($tamano,2)." KB");
echo 
$r;
?>
Cita:
jam1138 Chekate las funciones que vienen en los comentarios de la documentación oficial: www.php.net/filesize ... muy buenas y completas
__________________
Marco de Arica (Chile)
  #7 (permalink)  
Antiguo 31/05/2005, 08:46
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 10 meses
Puntos: 0
Cita:
Iniciado por FuLaNo_
si filesize da el tamaño en bytes debes dividirlo por 1024 para tener KB, y otra vez por 1024 (es decir, 2048) para obtener MB... otra vez por 1024 obtenes GB y otra vez por 1024 TB.
no me habia dado cuenta pero has cometido un error, al parecer crees tu que dividir dos veces por 1024 es lo mismo que divirlo por 2048 y eso es un concepto erroneo.

dividir dos veces por 1024 no es 1024*2=2048 si no en realidad 1024*1024 osea 1048576 y asi podriamos generalizar y decir que $tam/(1024**n) donde $tam es el valor entregado por la funcion filesize(), n es el numero de veces que vas a dividir por 1024 y ** es el operado exponente.

me explique bien?
__________________
ojala te hayas quitado la venda

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

Última edición por The_Dark_Roy; 31/05/2005 a las 08:54
  #8 (permalink)  
Antiguo 31/05/2005, 11:28
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años, 6 meses
Puntos: 2
tienes toda la razón The_Dark_Roy, no se en que pensaba :)
__________________
I Love Programming...
  #9 (permalink)  
Antiguo 31/05/2005, 12:08
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Hola!

El proceso estaba bien, solo la idea de que era 2048 estaba mal, al final de cuentas siguiente el algoritmo de dividir y luego volver a dividir seria correcto.

Por otra parte, estoy de acuerdo en que substr pretendes que te regrese la parte de la cadena que necesitas, pero no es exacto siempre usandolo asi, por lo cual esta mal aplicado, tambien el round estaria mal para este caso, porque no quieres que se redondee por pura casualidad a un valor mas arriba o mas abajo del entero que ya obtuviste, entonces necesitas una funcion que haga esto:

$cad = (string)$valor;
$valor = (int)Quitar_a_partir_del_Punto($cad);

Asi te queda un valor entero sin los decimales de mas, no se si existe una funcion matematica que lo hace automaticamente sin implicar un round ni nada por el estilo, es decir, que te devuelva solamente la parte entera como:

$valor = Parte_Entera($valor);

Creo que eso es lo que necesitas mas epecíficamente.

Por otra parte, ¿satisefcho?, se puede interpretar de muchas formas, yo lo entiendo como ¿Me explique bien?, ¿De acuerdo?, pero otras personas lo pueden entender como ¿Estas contento?, no se, algo como de burla o enojo, entonces creo apropiado que lo aclares para no tener malos entendidos.

¿Satisfecho? .... como ¿Te gusto la respuesta?

jajaja, Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #10 (permalink)  
Antiguo 02/06/2005, 06:39
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 10 meses
Puntos: 0
mi intencion nunca fue de ofender ni ridiculizar ha alguien, y pido disculpas segun sea el caso.
como tu has dicho se puede mal interpretar bueno espero que les sirva y ya cree la funcion esta en los faqs la trate de hacer de tal manera que fuera facil de entender aunque todavia no es eficiente sirve:
http://www.forosdelweb.com/showthrea...99#post1115199
mas adelante lo hare hoy por hoy tengo muho trabajo igual tengo artas funciones que aportar pero me falta tiempo

nos vemos

me he explicado de una forma correcta???
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
  #11 (permalink)  
Antiguo 02/06/2005, 08:50
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Dont Worry

Igual, como tu dices, tanto puedes ayudar tu, como la ayuda que te pueden dar... solo que esto es escrito, te hice el comentario solo porque jam1138 te pidio una explicacion, de otra forma bueno, yo no entendi nada mal, pero es mejor aclarar.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #12 (permalink)  
Antiguo 03/06/2005, 17:47
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
... ya, solo... comento que para mí y creo para la región en donde vivo, una respuesta que finaliza con la pregunta "satisfecho?" puede resultar un tanto ofencivo... de hecho aún lo releeo y me sigue molestando... resulta una pregunta un tanto "confrontadora", "retadora"... "agresiva"... sobre todo porque no está "nvuelta" en un contenido que cambie su significado... por ello resulta una cuestión ("frase") muy directa...

Pero bueno, disculpas aceptadas y a la vez pido disculpas igual... no hay mayor problema, solo hay que entender que en este foro nos paseamos gente de varios paises y que apesar de que hablamos el mismo idioma la lengua (tecnicismos) puede resultar muy diferente... y lo que "no es nada" para unos puede resultar ofensivo (u otro efecto) para otros... ... sé de palabras que para mí tienen un significado común pero... he visto que gente de otros paises se "alteran" con ellas ( y cuando digo que "lo he visto" de verdad lo he visto!!!! ... ).

Pués.. tema cerrado... y seguimos con el del darle formato a el tamaño del archivo... bien que lo hayas puesto en las FAQ.. lo veré y estudiaré con calma.. si veo alguna mejora ó error lo haré saber...

Saludos. Paz, amor y baile...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:45.