Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2005, 19:06
Avatar de Escoffie
Escoffie
 
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 21 años
Puntos: 9
Resaltar búsqueda sin afectar a los acentos

Hola foreros, por más que he buscado no encuentro... mi duda es esta:

Tengo un buscador en un site que utiliza MATCH() AGAINST() de MySQL para encontrar el o los términos en la base de datos. Hasta aquí todo bien.

El MATCH() AGAINST() puede encontrar la palabra "recaspita" en un registro donde exista "recáspita". Nótese que se ingresó el término sin acento y lo encontró pese a estar acentuado. Hasta aquí, genial.

Ahora, yo quiero resaltar dicho término, para lo cual uso:
Código PHP:
str_replace($_POST['termino'], "<span class=\"resalta\">".$_POST['termino']."</span>"$row['texto']); 
La cosa es que si el usuario puso "recaspita" en vez de "recáspita", aunque sí encuentra y resalta la palabra, la resalta sin el acento, y no queremos que el sitio tenga faltas de ortografía.

Lo que se me ocurre en pseudocódigo, pero que no sé como hacer, es localizar la palabra bien escrita que está en el registro, sustituir el término buscado por su homólogo bien escrito y entonces hacer el str_replace() pero eso de usar el término mal escrito para encontrar el bien escrito y etc. se me hace que no se puede...

¿Alguna idea? Al menos ármenme de argumentos para convencer al cliente de no poner el highlight.

De antemano, gracias, espero haberme explicado. Saludos a todos