> Davs
>
> Jeg har selv lavet noget søgehalløj for lidt tid siden og brugt koden
> herunder til at highlighte søgeordene:
>
> preg_replace(
> '/(^|[^a-z0-9\''])('.implode('|', $searchwords).')([^a-z0-9\'']|$)/i',
> '\\1<span class="searchword">\\2</span>\\3',
> str_replace(' ', ' ', $text)
> );
>
> Det blev vist aldrig HELT bugfrit men det virker da... sårn... lidt...
>
> Jeg må hellere lige smide en forklaring med:
> 1) $searchwords er et array bestående af søgeordene
> 2) Første og sidste parentes i første parameter i kaldet af preg_replace
> er der vist nok for at undgå at highlighte "ko" i "ekko" og sårn (det
> er her der kan være tale om bugs :)
> 3) ... og så bliver alle mellemrum skiftet ud med 2 mellemrum for at
> kunne farve to søgeord der står efter hinanden i teksten (det
> regulære udtryk matcher både det enkelte søgeord SAMT tegner før og
> efter ordet, så hvis to søgeord komme lige efter hinanden og kun er
> adskilt af et mellemrum, så vil første match spise mellemrummet
> mellem ordene og andet ord vil dermed ikke blive matchet - og siden
> det er HTML er to mellemrum jo lige så gode som et enkelt) (det er
> også her der kan være tale om bugs :)
>
> PUHA det er noget grim kode - men det endte faktisk med at virke godt
> nok.
>
> Men det korte af det lange er som følger: Hvis $searchwords er en streng
> bestående af dine søgeord adskilt af lodret streg (dvs. "hej|med|dig"),
> så kan følgende kald til preg_replace nok hjælpe dig et stykke på vej:
>
> $text = preg_replace("/($searchwords)/", '<b>\\1</b>', $text);
>
> ... og så er der nogle ting tilbage der nok skal håndteres.
>
> Hvis det her lyder lige så indbydende som en gåtur i Lars Tyndskids
> marker, så råb op :)
>
> --
> Hyggehej
> /Thomas
Fedt nok, tak for koden...
Jeg har selv nået at lave lidt, men har det problem med at f.eks. 'ko'
bliver highlightet i 'ekko'.
Nu har jeg ikke lige haft tid til at afprøve din kode, men vil da kigge på
det hurtigst muligt...
Jeg tror nok jeg kan tyde hvad du skriver...
/jan