Foros del Web » Programando para Internet » PHP »

Sobre ctype_upper

Estas en el tema de Sobre ctype_upper en el foro de PHP en Foros del Web. Hola, En primer lugar decir que soy bastante novato en PHP pero cada vez entiendo un poquito más. He estado mirando varias opciones de evitar ...
  #1 (permalink)  
Antiguo 07/11/2010, 13:23
Avatar de Willy_N  
Fecha de Ingreso: diciembre-2009
Ubicación: Cádiz
Mensajes: 334
Antigüedad: 14 años, 4 meses
Puntos: 18
Sobre ctype_upper

Hola,

En primer lugar decir que soy bastante novato en PHP pero cada vez entiendo un poquito más.

He estado mirando varias opciones de evitar que en mi foro phpBB se pueden publicar mensajes en mayúsculas. Parece fácil pero no lo es, porque cada solución conlleva sus pegas.

Ahora estoy mirando el uso de la función ctype_upper.

Mi problema está en que esta función solo devuelve TRUE o FALSE. Lo cual quiere decir que si detecta una palabra en mayúsculas llega su límite.

Me gustaría añadir al siguiente código la manera de poder contar el número de veces que devuelve TRUE para así poder poner un mínimo de veces antes de que salta el mensaje de error.

Código PHP:
Ver original
  1. $message_parts = explode(' ', $message);
  2.     foreach($message_parts as $wordnum => $message_word)
  3.     if (ctype_upper($message_word))
  4.     {
  5.     $error = true;
  6.     $error_msg = $lang['Message_capitals'];
  7.     }

Con que me puedes apuntar en la buena dirección puedo ir probando para ver si lo logro.
  #2 (permalink)  
Antiguo 07/11/2010, 13:28
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sobre ctype_upper

Puedes usar strtolower para hacer tu el trabajo y que se pueda publicar el mensaje...
  #3 (permalink)  
Antiguo 07/11/2010, 13:41
Avatar de Willy_N  
Fecha de Ingreso: diciembre-2009
Ubicación: Cádiz
Mensajes: 334
Antigüedad: 14 años, 4 meses
Puntos: 18
Respuesta: Sobre ctype_upper

Gracias, pero,

Esa función es demasiado indiscriminada, hay ocasiones en que no queremos que cada secuencia de mayúsculas sea eliminada.

Aparte, parece que no reconoce saltos de línea y por eso nuevos párrafos también los hace empezar en minúscula.

Además, prefiero que los usuarios que escriben en MAYÚSCULAS reciben un aviso para que ellos mismos arreglan su fallo.

De este modo no se está corrigiendo de modo indiscriminado, automático y a veces erróneo a cada usuario su escritura.

Si pudiera determinar si ctype_upper detecta más de un determinado número de positivos podría incluso hacer ese número configurable desde el ACP y así permitir un cierto uso de palabras en mayúsculas.

Por ejemplo, en un mismo mensaje se admiten como máximo seis palabras enteramente en mayúsculas, si supera esa cantidad salta el aviso.

Etiquetas: Ninguno
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 18:47.