Foros del Web » Programando para Internet » PHP »

comprobaciones en cadena - espacios y numero caracteres

Estas en el tema de comprobaciones en cadena - espacios y numero caracteres en el foro de PHP en Foros del Web. hola tengo en una base de datos 150.000 palabras y quiero hacer una comprobacion en todas, por eso quisiera saber la mejor forma de hacerlo ...
  #1 (permalink)  
Antiguo 25/11/2008, 06:17
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
comprobaciones en cadena - espacios y numero caracteres

hola

tengo en una base de datos 150.000 palabras y quiero hacer una comprobacion en todas, por eso quisiera saber la mejor forma de hacerlo sin saturar mi servidor

lo que realmente necesito saber es como revisar $frase, para comprobar basicamente 2 cosas

{

que la frase no tenga espacios y que tenga 3 o mas caracteres.

}


gracias un saldudo a todos
  #2 (permalink)  
Antiguo 25/11/2008, 06:52
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: comprobaciones en cadena - espacios y numero caracteres

Supongo que irás sacando los registros de la BDD y harás la comprobación con el fin de hacer alguna modificación, ¿no?

De ser así, no sé cual es el modo más óptimo, así a bote pronto yo haría algo así:

Código php:
Ver original
  1. if (($frase[3]) || (strpos($frase, ' ')!==FALSE))
  2.   echo 'algo anda mal en la cadena';

busco directamente el cuarto caracter del string porque creo que es más rápido que un str_len($frase), y hago esta comprobación antes que strpos porque la primera es más rápida, así que si devuelve false ya no evaluaría la segunda condición.

Pero vamos, es algo improvisado, puede que haya formas mejores....

Última edición por Keysher; 25/11/2008 a las 08:26
  #3 (permalink)  
Antiguo 25/11/2008, 07:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Respuesta: comprobaciones en cadena - espacios y numero caracteres

hola Keysher

si los datos los saco uno a uno de la DB y hago la comprabacion

me funciono perfecto y parece que puede consumir pocos recursos, al final lo deje asi

if ((!$frase[3]) || (strpos($frase, ' ')!==FALSE))
echo 'algo anda mal en la cadena';


gracias, un saludo
  #4 (permalink)  
Antiguo 25/11/2008, 08:21
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: comprobaciones en cadena - espacios y numero caracteres

Umm, lo que quieres es que haya más o menos de 3 carácteres? Pensé que eran tres o menos, pero si son tres o más sería como lo tienes tú pero $frase[2] en vez 3.
  #5 (permalink)  
Antiguo 25/11/2008, 08:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Respuesta: comprobaciones en cadena - espacios y numero caracteres

Cita:
Iniciado por Keysher Ver Mensaje
Umm, lo que quieres es que haya más o menos de 3 carácteres? Pensé que eran tres o menos, pero si son tres o más sería como lo tienes tú pero $frase[2] en vez 3.

si, eso es, si no tiene 3 o mas no vale, y luego comprabamos que de esos 3 o mas no tenga ningun espacio en blanco.

GRACIAS, por fijarte en mi error, tienes razon necesito poner [2] a veces se me olvida que el primero es el [0] :D

un saludo.
  #6 (permalink)  
Antiguo 25/11/2008, 09:56
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Respuesta: comprobaciones en cadena - espacios y numero caracteres

una cosa

¿te fijaste que si coincide que el tercer caracter es '0' cero, trata toda la cadena como mala? que cosa mas rara..
  #7 (permalink)  
Antiguo 25/11/2008, 10:14
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: comprobaciones en cadena - espacios y numero caracteres

Raro no es, tiene su lógica, ya que 0 es considerado como FALSE. Lo que podrías hacer sería algo así:

if (($frase[2]===FALSE) || (strpos($frase, ' ')!==FALSE))

Creo que funcionaría.
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 19:13.