Mailinglisten-Archive |
Hallo! Ich kann zwar nicht mit einem Tutorial dienen, aber ich kann dir das Code-Schnipsel zeigen, das ich dafür verwende(t habe). $color = "#FFFF80"; $searchstr = "/"; foreach ($searchFor as $word) { if (!trim($word)) continue; $searchstr .= $word."|"; } if (strlen ($searchstr) > 1) $searchstr = substr($searchstr, 0, strlen($searchstr) - 1); $searchstr .= "/i"; $replstr = "<span style=\"background-color:$color;\">\\0</span>"; if (strlen($searchstr) > 3) { $name = preg_replace($searchstr, $replstr, $name); $name = str_replace("</span> <span style=\"background-color:$color;\">", " ", $name); } Das Script macht folgendes: Es baut sich einen Regex, der folgendermassen aussieht "/wort1|wort2|wort3/i". Durch das "i" wird Groß/Kleinschreibung nicht beachtet, die "|" sind als Oder zu lesen. In dem foreach wird das numerische array $searchFor gebraucht, dass ich vorher mit $searchFor = split(" ", $suchString); erzeugt habe, es enthält einfach alle wörter. Wenn in dem $searchstr nun Worter enthalten sind, er mehr als nur "//i" ist, wird die regex auf $name losgelassen. Die ersetzt erstmal alle wörter durch den $replstr, in dem \\0 das originalwort ist. (Ich färbe hier nur den bg gelb.) In einem Zweitern druchgang werden die Leerzeichen zwischen zwei markierten wörten auch markierte, bzw das schliessende und öffnende Tag neben dem jeweiligen Leerzeihen wird jeweils entfernt. (wenn du $relpstr ändert, musst du auch den str_replace bearbeiten.) Das script funzt bei mir gut. Gruß, Dion thomas.hausheer at bluewin.ch wrote: > Hallo > > bin am Tutorial suchen nach einer einfachen Methode mit der ich nach > einer MySQL Suche die gesuchten Wörter im gefundenen Text anders > darstellen kann (zB. Fett). > > Hat mit jemand einen heissen Tipp? > > Vielen Dank & Gruss > Thomas >
php::bar PHP Wiki - Listenarchive