Hallihallo!
Wie Cybaer schon angedeutet hat, ist HTML im eigentlichen Dokument Alles, was zwischen "<" und ">" steht.
Ich sehe hier einen Einsatzfall für reguläre Ausdrücke:
$s = $Suchbegriff
$t = '<b>'.$Suchbegriff.'</b>'; // oder wie auch immer die Hervorhebung sein soll
$whatever = preg_replace("/((<[^>]*)|$s)/ie", '"$2"=="$1" ? "$1" : "$t"', $whatever);
Dieser kleine Schnippsel ersetzt den gefundenen Text nur dann, wenn er nicht zwischen "<" und ">" steht. Man muss nur darauf achten, daß $Suchbegriff keine Zeichen enthält, denen in regulären Ausdrücken eine besondere Bedeutung zuteil wird.
Viele liebe Grüße,
Der Dicki