Foros del Web » Programando para Internet » PHP »

Como saber cuantos Bytes o Kb pesa una variable?.

Estas en el tema de Como saber cuantos Bytes o Kb pesa una variable?. en el foro de PHP en Foros del Web. Quiero que cuando una persona envie unos datos a travez de un <textarea name="datos">, si esa var $datos es mayor a 900 Bytes, no sea ...
  #1 (permalink)  
Antiguo 26/10/2004, 13:05
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
Como saber cuantos Bytes o Kb pesa una variable?.

Quiero que cuando una persona envie unos datos a travez de un <textarea name="datos">, si esa var $datos es mayor a 900 Bytes, no sea procesada.

Podria contar los caracteres con [ strlen ], pero quisiera saber si puedo saber el "peso" en Bytes o KB de esa variable $datos.

Salu2!.
  #2 (permalink)  
Antiguo 26/10/2004, 13:13
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

! caracter=1 byte, siempre y cuando strlen cuente los caracteres multibyte como varios, que creo que asi lo hace por los comentarios del manual www.php.net/strlen .

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 26/10/2004, 20:06
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
Hola Josemi, el manual dice:

#####################
strlen
(PHP 3, PHP 4 )

strlen -- Obtiene la longitud de la cadena
Descripción
int strlen ( string cad)
Devuelve la longitud de la cadena.
#####################

Pero lo que me dices es que en el mundo de los computadores un caracter y un espacio = 1 Byte?.

Mmmmmm.....

Listo!, gracias.
  #4 (permalink)  
Antiguo 26/10/2004, 20:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio si... pero un \n por ejemplo es "multibyte" .. son dos .. uno para el \ y otro para el n si no me equivoco. Mejor que alguien lo confirme.

Un saludo,
  #5 (permalink)  
Antiguo 27/10/2004, 02:34
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Cita:
Iniciado por Cluster
En principio si... pero un \n por ejemplo es "multibyte" .. son dos .. uno para el \ y otro para el n si no me equivoco. Mejor que alguien lo confirme.

Un saludo,
No, solo es un caracter, el 0x0a (creo) en hexadecimal. El codigo ascii representa cada caracter por un byte, por lo que en ascii solo hay 256 caracteres. Pero como con todos los alfabetos como hay en la faz de la tierra, 256 caracteres no abarca todos los posibles caracteres. Asi que que se inventaron las paginas de codigo (charset, que debes especificar en la pagina web), donde un mismo codigo ascii representa distinto caracter dependiendo del charset seleccionado. Como solo podias especificar un charset, pues tenias un problema para mostrar caracteres de varios idiomas. Y por eso inventaron los codigos multibyte, el mas famoso el UTF-8 (que puedes especificar como charset). En esta codificacion, un caracter puede ocupar mas de un byte, pero ese caracter tiene un codigo fijo.

PHP es antiguo, y es anglosajon. El ascii lo inventaron los anglosajones, asi que no tiene ningun problema con los caracteres anglosajones. Por eso el soporte multibyte no es muy bueno en PHP (por no decir nulo ).

strlen() no devuelve bien el numero de caracteres de las cadenas multibytes, porque strlen() no entiende codigos multibyte. Para strlen(), un caracter multibyte ocupa tantos caracteres como bytes.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 27/10/2004, 06:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, josemi .. gracias por la aclaración.

Un saludo,
  #7 (permalink)  
Antiguo 27/10/2004, 11:42
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
Si [\n] no es multyB para PHP, podrian colocar un ejemplo de MultyB para PHP?.

Salu2!.

Y... Bueno, digamos que funciona con STRLEN, teniendo un infimo margen de "error", verdad?.
  #8 (permalink)  
Antiguo 27/10/2004, 13:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Cita:
podrian colocar un ejemplo de MultyB para PHP?
Si, cualquier caracter extraño codificado como utf8: http://es.php.net/utf8_encode

No es cuestion de que caracter sea, sino como lo codifiques. Es un poco complicado. Intentemos un ejemplo, ¿cuanto ocupa el caracter &? Pues 1 si lo guardas como & y 5 si lo codificas como una entidad HTML como &amp_; (sin el _).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 27/10/2004, 18:13
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 14 años, 7 meses
Puntos: 35
loading............



Si ya está codificado mi idea es contar las letras y contar aparte los \n luego del total restar el resultado de los \n y listo, tambien contar el espacio no?



connection closed.
__________________

Maborak Technologies
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 20:39.