Aquí tienes una modificada, que utiliza expresiones regulares. Es un tanto mejor, ya que no importa las mayúsculas o minúsculas de la cadena $buscar. Resalta todas las coincidencias SIN cambiar o alterar las mayúsculas o minúsculas del texto original. Además es mucho más corta
Código PHP:
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;
}
$hunter_nombre = 'HaRoLD StaNLey RivaS MaRTinEz';
$buscar = 'HArOld RivAs';
$hunter_nombre = resaltar($buscar,$hunter_nombre);
echo $hunter_nombre;
Un saludo,