Mailinglisten-Archive |
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