Gå til innhold

preg_replace - case insensitive


Anbefalte innlegg

forsøker en highlight-funksjon - men den er jo ikke helt god, i og med at den ser forskjell på store og små bokstaver.

 

$text = preg_replace("/$hl/", "<span style=\"background:yellow\">$hl</span>", $text);

 

er det noen måte jeg kan få hl alle ord, uansett hvordan ordene er bygget opp med store og små bokstaver?

Lenke til kommentar
Videoannonse
Annonse

$text = preg_replace("/$hl/i", "<span style=\"background:yellow\">$hl</span>", $text);

 

Slik.

 

Du kan lese mer om de forskjellige modifierene til preg på php.net. I dette tilfellet brukte jeg i. Du legger modifierene bak delimiteren som i dette tilfellet er /.

 

Edit: Og en ting til. Slik du har det nå vil ordet bli erstattet med din "versjon" av ordet. Altså om du søker etter "hey", vil både HeY og HEY retunere "hey" med <span> rundt seg. For å få det samme ordet i riktig case, kan du bruke denne:

 

$text = preg_replace("/($h)l/i", "<span style=\"background:yellow\">\\1</span>", $text);

Endret av RipZ-
Lenke til kommentar

litt ukonsistente PHP-artigheter her:

 

bruker "i" for å skille mellom små og store:

 

strpos mot stripost,

ereg_replace mot eregi_replace

 

...og bruker "case" for å skille små og store:

 

strcmp mot strcasecmp

 

den siste burde vel hett "stricmp"

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...