Foros del Web » Programando para Internet » PHP »

Comparar palabras con otras con tilde

Estas en el tema de Comparar palabras con otras con tilde en el foro de PHP en Foros del Web. Hola un saludo previo. Les explico: estoy haciendo un sistema de busqueda y estoy resaltando con otro color las palabras que coincidan con la palabra ...
  #1 (permalink)  
Antiguo 09/06/2009, 21:45
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Comparar palabras con otras con tilde

Hola un saludo previo.

Les explico: estoy haciendo un sistema de busqueda y estoy resaltando con otro color las palabras que coincidan con la palabra ingresada previamente, y me surgio un problema lo primero es como puedo resaltar aquellas palabras que tienen tilde.

ejemplo 1.
por ejemplo ingreso: casa
palabra encontrada: casa

ejemplo 2.
por ejemplo ingreso: ingenieria
palabra encontrada: Ingeniería.

como veran en el primer ejemplo funciona bien, en el ejemplo 1 me funciona perfectamente y logro resaltarlo la palabra que coincida con la ingresada, pero no funciona con el ejemplo 2.

gracias desde ya.
  #2 (permalink)  
Antiguo 09/06/2009, 23:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Comparar palabras con otras con tilde

Verifica si te funciona hacerlo con

str_ireplace($buscar_palabra, "<font color='#990000'><b>".$buscar_palabra."</b></font>", $texto_a_buscar);
  #3 (permalink)  
Antiguo 10/06/2009, 16:10
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Comparar palabras con otras con tilde

Gracias por la respuesta.

Eso solo reemplazaria lo que estoy haciendo y lo hice como una simple asignacion de array :D, o me equivoco, antes voy a darle un vistazo, gracias.
BUeno en sí el codigo, es este:
Código PHP:
if($Datos=mysql_fetch_array($Resultado))

{                        

        
$Claves=split(" ",$Clave);        //separo la frase en palabras                    

        
do{

            
$Titulo=$Datos[Titulo]; 

            
$PalabrasTitulo=split(" ",$Titulo); // separo el titulo del texto en palabras


            
for($i=0;$Claves[$i];$i++)                                                

            {    

                for(
$j=0;$PalabrasTitulo[$j];$j++)

                {

                        if(!
strnatcasecmp($PalabrasTitulo[$j],$Claves[$i]))  //comparo si son iguales        

                            
$PalabrasTitulo[$j]="<font color='#b22222'><b>".$PalabrasTitulo[$j]."</b></font>"// si ambos son iguales, reemplazo la palabra con la misma pero resaltada con otro color

                
}   

            }

            
$TituloCompleto=implode(" ",$PalabrasTitulo);    //al que termine de buscar las palabras coincidentes los vuelvo a unir en una frase

            
}while($Datos=mysql_fetch_array($Resultado));


como dije anteriormente las palabras sin tildes normal, pero como puedo hacer para que logre subrayar las palabras con tilde.

gracias.

Última edición por hnesys; 10/06/2009 a las 16:15
  #4 (permalink)  
Antiguo 15/09/2009, 18:05
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Comparar palabras con otras con tilde

Diganme cual seria la solucion... aunq tambien habria la posibilidad de dividir la palabra en caracteres independientes y asi poder ver su similitud, o no ??
Ideas... gracias
__________________
@eliascanaza
  #5 (permalink)  
Antiguo 16/09/2009, 00:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Comparar palabras con otras con tilde

Desconozco si existe una función que te permita reconocer una palabra con tilde, cuando un usuario escribe sin tilde y lo puedas enegreser. Pero si puedes hacer esto, una vez tu hayas divido por palabras, haces una comparación de la palabra que buscó pero que esa palabra este todos los caracteres especiales convertidos a normales y si esa comparación que tu tienes es similar a la que escribió el usuario, entonces enegreses la palabra original. Me dejas saber.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 16/09/2009, 08:25
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Comparar palabras con otras con tilde

Gracias...

entonces esa seria la otra posibilidad, no se si me podrian ayudar con esa funcion para poder dividir la palabra en caracteres independientes y hacer la comparativa y verificar la similitud
__________________
@eliascanaza
  #7 (permalink)  
Antiguo 18/09/2009, 15:52
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Comparar palabras con otras con tilde

bueno me podrian ayudar con dicha funcion?, gracias
__________________
@eliascanaza
  #8 (permalink)  
Antiguo 18/09/2009, 15:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Comparar palabras con otras con tilde

Bueno, usa explode, luego usa un foreach para ir recorriendo las palabras, haces una comparacion usando str_replace y si la palabra que esta buscando se parece a la palabra que hiciste el str_replace entonces la colocas en negrilla
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
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:54.