Gå til innhold

Highlite tekst utenfor HTML


Anbefalte innlegg

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 ] )

Lenke til kommentar
  • 4 uker senere...
Videoannonse
Annonse

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.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...