power Skrevet 6. november 2006 Skrevet 6. november 2006 Hei Jeg lager et søkescript som skal highligte resultater med <b>søkeord</b> .. Måten jeg gjør det på i dag er med str_ireplace($søk, "<b>". $søk ."</b>", $tekst); Problemet er da at det er HTML inne i $tekst, slik at hvis søket f.eks er img .. så blir en <img> tag så vakker som dette her: <<b>img</b>.. osv Noen som vet hvordan jeg bare highliter ting som er utenfor HTML og BBcode ( [ og ] )
stiber Skrevet 1. desember 2006 Skrevet 1. desember 2006 Prøv dette: PHP <?php$tekst = "dette er en test<a href='dette er en test'>dette er en test</a> dette er en test "; $søk = "test"; $søk = preg_quote($søk); print preg_replace("/(".$søk.")(?![^<\[]*[>\]])/i","<strong>\\1</strong>",$tekst); ?> dette er en <strong>test</strong><a href='dette er en test'>dette er en <strong>test</strong></a> dette [quote=dette er en test]er en <strong>test</strong>[/quote] Hvis du har javascript på siden kan det være en idé å sikre slik at det ikke erstattes her heller... Jeg har ikke prøvd denne saken noe særlig selv, så ta og test det litt før du setter det i produksjon.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå