Foros del Web » Programando para Internet » PHP »

Limitar y contar caracteres.

Estas en el tema de Limitar y contar caracteres. en el foro de PHP en Foros del Web. Bueno pues estoy haciendo una aplicación donde puedes publicar un texto, pongamos 250 caracteres. Y en la base de datos Varchar 255 Utf8_bin. Si alguien ...
  #1 (permalink)  
Antiguo 13/06/2013, 19:59
 
Fecha de Ingreso: enero-2004
Mensajes: 236
Antigüedad: 20 años, 3 meses
Puntos: 4
Limitar y contar caracteres.

Bueno pues estoy haciendo una aplicación donde puedes publicar un texto, pongamos 250 caracteres. Y en la base de datos Varchar 255 Utf8_bin.

Si alguien pega este código que me he encontrado para testear:
╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱
╱╱┏╮╱╱╱╱╱╱╱╱╱╱╱╱
╱╱┃┃╱╱╱┳╱┓┳╭┫┳┓╱
▉━╯┗━╮╱┃╱┃┣┻╮┣╱╱
▉┈┈┈┈┃╱┻┛┛┻╱┻┻┛╱
▉╮┈┈┈┃╱╱╱╱╱╱╱╱╱╱
╱╰━━━╯╱╱╱╱╱╱╱╱╱╱

Lo primero es que javascript me cuenta 130 caracteres así que permite enviarlo.
Después el PHP cuenta 354 o 366 según escape el texto o no. Y entonces salta error por mas de 250 caracteres.

Puedo engañar al contador en PHP con utf8_decode, pero realmente no cabe el texto en la base de datos es decir ya lo cuenta bien, y si paso el texto que va a la database con decode lo convierte todo a "??????"...

He probado en la DB con utf 8, 16, 32, bin o unicode, y otros varios con igual o peor resultado.

Hay alguna solución? o voy a tener que limitar la DB a muchos mas caracteres?
Por ejemplo twitter e probado y no tiene problema, utilizara TEXT o VARCHAR con muchos caracteres?

Última edición por llnitoll; 13/06/2013 a las 20:07
  #2 (permalink)  
Antiguo 13/06/2013, 20:29
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Limitar y contar caracteres.

lo más normal es que twitter utilice text


Y para comprimir tu cadena podrías utilizar

gzdeflate
gzinflate

y probar como te funciona.
Saludos.

Edito:

Podrías utilizar incluso base64_encode y su respectivo base64_decode

Es cosa de ir probando haber que tipo de cadena te conviene más introducir.
Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #3 (permalink)  
Antiguo 13/06/2013, 20:55
 
Fecha de Ingreso: enero-2004
Mensajes: 236
Antigüedad: 20 años, 3 meses
Puntos: 4
Respuesta: Limitar y contar caracteres.

Claro pero la idea era buscar la eficiencia y rapidez, por eso quería usar varchar 255.

Hacer esas compresiones probablemente sea peor que simplemente usar TEXT.

Saludos.
  #4 (permalink)  
Antiguo 13/06/2013, 20:58
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Limitar y contar caracteres.

pues no del todo, lo que pasa es que de alguna manera tienes que evitar que se introduzcan caracteres como simbolos en tu base de datos... podrias tener problemas de seguridad.

El codificar en base64 y decodificar no te ocasionara tantos problemas de eficacia y rapidez como podrías pensar.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #5 (permalink)  
Antiguo 13/06/2013, 21:15
 
Fecha de Ingreso: enero-2004
Mensajes: 236
Antigüedad: 20 años, 3 meses
Puntos: 4
Respuesta: Limitar y contar caracteres.

Cita:
Iniciado por iovan Ver Mensaje
pues no del todo, lo que pasa es que de alguna manera tienes que evitar que se introduzcan caracteres como simbolos en tu base de datos... podrias tener problemas de seguridad.

El codificar en base64 y decodificar no te ocasionara tantos problemas de eficacia y rapidez como podrías pensar.
El caso es que he leido que ese base64_encode aun aumenta más la cadena, sobre un 30%, ahora mismo el PHP me cuenta 488 con ese encode.

Por otra parte dejo introducir cualquier tipo de simbolo, tengo una función de escape que ya publique en el foro hace tiempo y en principio es segura.

PD: No me acordaba de porque tenia puesto 255 en Varchar, he visto que antes estaba limitado, quizás me quede con eso y ahora no hay una gran diferencia en poner 255 que 400.
Creo que contare los caracteres con utf8_decode, y pondre un Text o un varchar alto.

Última edición por llnitoll; 13/06/2013 a las 21:39

Etiquetas: limitar
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 23:43.