webForumDet fria alternativet

wF´s "highlight"

6 svar · 615 visningar · startad av filipbh

filipbhMedlem sedan juli 2002405 inlägg
#1

Hejsan!

Jag håller på med en sökfunktion till min blogg och har stött på ett problem. Det jag håller på med nu är en highlight-funktion som wF kallar sökordet. Om man skriver in sökordet med tex. liten första bokstav men det i texten stavas med stor första bokstav så ändras inte texten. Hur ska jag göra för att ordet skall visas i röd text, även om inte sökordet matchar ordet i texten?

Här är min kod

$string = $_GET[highlight]; 

$word = explode(";", $string); 

foreach ($word as $key => $value) { 

   $word[$key] = trim($value); 

$blogg_text = str_replace($word[$key], '<b><font color=red>'.$word[$key].'</font></b>', $blogg_text);
}

echo $blogg_text;
GislavedMedlem sedan nov. 20041 740 inlägg
#2

Du kan ju byta ut str_replace mot str_ireplace

filipbhMedlem sedan juli 2002405 inlägg
#3

Får kolla den funktionen då...

filipbhMedlem sedan juli 2002405 inlägg
#4

Jag får det inte att fungera... Måste jag ändra något annat än att bara byta ut str_replace mot str_ireplace?

metalboyMedlem sedan jan. 2005953 inlägg
#5

Jag tycker att du ska använda preg_replace istället.

$blogg_text = preg_replace('/' . preg_quote($word[$key]) . '/i', '<b><font color=red>$0</font></b>', $blogg_text);
filipbhMedlem sedan juli 2002405 inlägg
#6

Lysande Sickan :) Tack!

filipbhMedlem sedan juli 2002405 inlägg
#7

Problem 2 uppkom nu... Det läggs till ett rabryt nu så mellanrummet mellan raderna blir för två rader istället för ett. I utskriften alltså. Vad beror det på? Det blir inte så utan den raden...

Det kan tilläggas att jag kör med nl2br

129 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)