Avatar billede Slettet bruger
25. februar 2011 - 09:49 Der er 2 kommentarer og
1 løsning

Highlight søgeresultat uanset upper- eller lowercase

Hej, jeg er ved at lave en søgning. Selve udtrækket fungerer fint vha.: WHERE UPPER(s.sc_desc_".$lang.") LIKE UPPER('%$fritekst_keyword%')

Men nede på siden, hvor jeg viser søgeresultaterne vil jeg gerne highlight'e søgningen. Det gør jeg med:

$sc_desc = $row_screencasts["sc_desc_".$lang.""];
if (isset($_POST['fritekst'])){
$sc_desc = str_replace($fritekst_keyword,"<span style='background-color: #FFFF66'>$fritekst_keyword</span>",$sc_desc);
}

Problemet er, at mens det klart nok virker med en søgning på "er" (hvis "er" findes, altså :-)), mens den ikke highlight'er "Er".

Hvordan kommer man omkring det?
Avatar billede Slettet bruger
25. februar 2011 - 10:17 #1
Nå, har fundet noget kode, der næsten er der:

$text = "Sådan, her står en tekst. Kan du så læse min tekst? Så prøver vi.";
$search = "så";
$regex_search = '/\b('.preg_quote($search,'/').')\b/i';
$regex_replace = "<span style='color: red;'>$1</span>";
print preg_replace($regex_search,$regex_replace,$text)

Men her undlader den at highlight "Så" i "Sådan", hvilket jeg faktisk gerne vil have den gør... Er der nogen der har styr på regulære udtryk?! :-)
Avatar billede Slettet bruger
25. februar 2011 - 10:19 #2
Pfh... :-s

$regex_search = '/('.preg_quote($fritekst_keyword,'/').')/i';
Avatar billede Slettet bruger
25. februar 2011 - 10:20 #3
Lukker, beklager ulejligheden. Håber andre kan bruge løsningen...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester