phpbar.de logo

Mailinglisten-Archive

[php] preg_replace in Suchergebnis

[php] preg_replace in Suchergebnis

Alex Emken php at emken.com
Mon Feb 18 17:13:56 CET 2008


Hallo Tim!

Tim Hildebrandt wrote:
> Ein preg_replace() mit der Option "case insensitiv" erzeugt aber das
> Problem, dass wenn z.B. nach "teller" gesucht wurde, dann überall in den
> Suchergebnissen auch "<b>teller</b>" ausgetauscht wird. Allerdings
> werden dann die falsch geschriebenen Stichworte aus der Suche
> übernommen, statt - korrekterweise - "<b>Teller</b>" auszutauschen. Gibt
> es eine Möglichkeit, das gleich sofort korrekt austauschen zu lassen
> oder muss ich in jeder einzelnen Ergebniszeile mittels regulärem
> Ausdruck erst alle Wörter case insensitiv ermitteln lassen und das Array
> dann per foreach-Schleife tauschen?

Du verwendest das gesuchte Wort dann auch als Ersetzung, oder?

Versuchs mal so:

   $keyword = 'teller';
   $text = preg_replace('/('.$keyword.')/is', '<b>\1</b>', $text);
   echo $text;

\1 ist die back reference auf das gefundene Wort und ersetzt somit 
dieses wie vorgefunden.

Gruß
Alex

php::bar PHP Wiki   -   Listenarchive