Tom: Regular Expression, Humpellösung

Beitrag lesen

Hello,

Jetzt möchte ich bei Anzeige eines Treffer-Datensatzes die entscheidenden Wörter gelb markieren. Beispielsweise kommt im Artikel mit der id 25 das Wort "internationalem" vor, das ihn zu einem Treffer machte. Dieses Wort soll ungestemmt gelb markiert werden.

Das könnte eventuell mit preg_replace() klappen
http://de2.php.net/manual/en/function.preg-replace.php

<?php   ### preg_replace_highlight.php  ###

$text = "In internationalem Flair fand das letzte internationale Self-Treffen statt";

$such = "international";

$pattern = '@\b([^ ]*?' . $such . '.*?)\b@ui';

$replace = '<span class="highlight">${1}</span>';

$text = preg_replace($pattern, $replace, $text);

echo htmlspecialchars($pattern)."<br />\n";
echo $text  . "<br />\n";

?>

Nicht zufrieden bin ich mit dem [^ ] vor dem Suchbegriff, denn der könnte ja auch hinter einem Komma  oder am Satzanfang stehen. Aber wenn ich stattdessen '.*?' nehme, wird das 'In ' immer mit in den Begriff reingenommen...

Also auch nochmal überarbeitungsbedürftig durch den Meister der Regular Expressions..

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)