Código PHP:
$tam=substr((filesize($fila[path_galeria]."/".$file)/1024),0,5);
if($tam>1024){
$tam=($tam/1024)." MB";
}else{
$tam.=" Kb";
}
| ||||
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... |
| ||||
¿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...
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| ||||
Cita: 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)
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... satisfecho? |
| ||||
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
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
Aunque es casi lo mismo solo le quite el substr que no se que es lo que hace alli .... Código PHP: Cita: jam1138 Chekate las funciones que vienen en los comentarios de la documentación oficial: www.php.net/filesize ... muy buenas y completas
__________________ |
| ||||
Cita: 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.
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. 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? Última edición por The_Dark_Roy; 31/05/2005 a las 08:54 |
| ||||
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!! |
| ||||
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??? |
| ||||
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!! |
| ||||
... 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...
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |