Amigo me costo un buen trabajo, pero al fin lo logre, la cuestion es que los patrones hasta lo que yo se, no son de asemejar los tildes con su contraparte sin tildes (recuerda que es un lenguaje de programacion de origen no latino) por eso siempre hay problemas o trucos para estos.
En fin lo que hice fue, que por cada palabra clave que necesitabas, iba a cambiar las volares por un sub patron que tomara en cuenta las vocales en sus diversas variantes con tildes y sin ellos!
Código PHP:
Ver originalfunction resaltar($busqueda_para_negrita, $texto_para_negrita)
{
$claves_para_negrita = explode(" ",$busqueda_para_negrita); $clave_para_negrita = $claves_para_negrita;
$num = count($clave_para_negrita); for($i=0; $i < $num; $i++)
{
$clave_para_negrita[$i] = preg_replace('/(i|í|Í|I)/', '(i|í|Í|I)', $clave_para_negrita[$i]); $clave_para_negrita[$i] = preg_replace('/(o|O|ó|Ó)/', '(o|ó|Ó|O)', $clave_para_negrita[$i]); $clave_para_negrita[$i] = preg_replace('/(a|a|á|Á)/', '(a|a|á|Á)', $clave_para_negrita[$i]);
echo $clave_para_negrita[$i] . '<br/>';
$texto_para_negrita = preg_replace("/(".trim($clave_para_negrita[$i]).")/Ui", "<b>\\1</b>" , $texto_para_negrita); }
return $texto_para_negrita;
}
$busqueda = "estas amigo avión mecanico";
$titulo = "Hola amigo mio que tal estas avion mecánico";
$titulo = resaltar($busqueda, $titulo);
echo "<u>Búsqueda:</u> $busqueda";
echo "<br>";
echo "<u>Título:</u> $titulo";
?>
PD: Termina de agregar las demas vocales! =)