Ik ben aan het klungelen met een preg_replace die niet helemaal werkt zoals die zou moeten doen.
Ik heb in mijn database een veld met daarin html-code. Deze pagina wordt op het scherm getoond en woorden kunnen eventueel ge-highlight worden. Hiervoor gebruik ik de volgende functie:
Bovenstaande code moet woorden ($keyword) markeren met een kleurtje als:
-deze niet in een html tag staan
-het woord niet begint of eindigt met 'a-z', '-' of '_'.
Dit werkt voor bijna al mijn pagina's.
Er is echter één uitzondering: dit is een test <b>zinnetje</b>.
Het woord zinnetje zou nu gemarkeerd moeten worden maar dat is niet het geval. Ik begrijp niet waarom... Het woord eindigt niet op [a-z-_=] en staat niet tussen html tags.
Kan iemand me misschien verder helpen?
Ik heb in mijn database een veld met daarin html-code. Deze pagina wordt op het scherm getoond en woorden kunnen eventueel ge-highlight worden. Hiervoor gebruik ik de volgende functie:
code:
1
| $page = preg_replace("|([^a-z-_=])($keyword)([^a-z-_=])(?![^<]*>)|i","$1<span style=\"background-color:#99CEF2\">$2</span>$3",$page); |
Bovenstaande code moet woorden ($keyword) markeren met een kleurtje als:
-deze niet in een html tag staan
-het woord niet begint of eindigt met 'a-z', '-' of '_'.
Dit werkt voor bijna al mijn pagina's.
Er is echter één uitzondering: dit is een test <b>zinnetje</b>.
Het woord zinnetje zou nu gemarkeerd moeten worden maar dat is niet het geval. Ik begrijp niet waarom... Het woord eindigt niet op [a-z-_=] en staat niet tussen html tags.
Kan iemand me misschien verder helpen?