Elegant nicht gerade, aber etwas getrickst:
Du erstellt eine eigene Suchen/Ersetzen-Funktion. Dabei durchsuchst du den String von Anfang an, Zeichen für Zeichen. Triffst du auf ein HTML-Tag, setzt du einen Zähler hoch bzw. auch wieder runter. Nur wenn der Zähler auf 0 ist, sich der gesuchte Text also außerhalb eines HTML-Tags befindet, darf ersetzt werden. Das setzt natürlich einen sauberen HTML-Code voraus. (Achte auch auf Tags ohne Abschluss-Tag wie <br>.)
Übrigens: Für deine Ersetzen-Version hätte es auch die Funktion strtr getan. Du hättest ein Array mit Elementen der Form "Wort1" => "<span ...>Wort1</span>" aufgebaut und mit strtr auf einmal ersetzt. Aber wie gesagt, ist nur eine Alternative zu deinem und löst nicht das "HTML-Problem".
__________________
Beamer
Computers are like air conditioners - They work properly unless you open Windows.
|