Tengo un problema al resaltar palabras de una busqueda probe con expresiones regulares, y utilice este codigo que econtre pero el problema es que taba pensando que pasa si el usuario realiza su busqueda de la siguiente manera:
"PHP a" entonces lo correcto es que busque la palabra PHP y la palabra "a" entonces ahi tambien esta el problema debido a que el resultado que me va a mostrar es el siguiente:
"an class='resaltado'>PHPan> es un lenguaje chevere",
bueno especifico que estoy buscando estas palabras dentro del texto
"PHP es chevere".
La funcion que utilizo para hacer el resaltado es:
function resaltar($buscar, $texto) {
$claves = explode(" ",$buscar);
$clave = array_unique($claves);
$num = count($clave);
for($i=0; $i < $num; $i++)
$texto = preg_replace("/(".trim($clave[$i]).")/i","<span class='resaltado'>\\1</span>",$texto);
return $texto;
}
Como se dan cuenta el problema es que reemplaza la letra "a" dentro de las etiquetas del html en este caso <span> alguien tiene alguna idea como puedo restringir eso o solucionar este problema