Ik ben ongeveer al een middag aan het prutsen om een routine te maken die woorden kan highlighten in een tekst die gezocht zijn met een search.
Er kwamen hierbij een hoop complicaties aangezien woorden die in HTML tags voorkomen niet gehighlight moesten worden!
Dit heb ik met behulp van een preg_split opgelost
Ik heb nu het volgende geprogged:
Het probleem zit 'm in het replacen.
Ik zou met een replace een voor een het woorden array kunnen aflopen en kunnen gaan replacen in het parts array.
Echter soms beginnen de woorden met een hoofdletter een andere keer niet etc.
Ik wil dit de case in takt laten, maar ik heb geen idee meer met welke (regular expressions) replace statement ik dit zou kunnen oplossen.
Er kwamen hierbij een hoop complicaties aangezien woorden die in HTML tags voorkomen niet gehighlight moesten worden!
Dit heb ik met behulp van een preg_split opgelost
Ik heb nu het volgende geprogged:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| // Split alle teksten buiten de HTML tags $parts = preg_split('#(<\/?)(\w+)([^>]*>)#mis', $input, -1, PREG_SPLIT_NO_EMPTY); // Highlight in alle parts alle woorden for ($i = 0; $i < count($parts); $i++) { // Highlight alle woorden in de array $hl_words staan de woorden die // gehighlight moeten woorden for ($j = 0; $j < count($hl_words); $j++) { // replace woorden in $parts[$i] } } |
Het probleem zit 'm in het replacen.
Ik zou met een replace een voor een het woorden array kunnen aflopen en kunnen gaan replacen in het parts array.
Echter soms beginnen de woorden met een hoofdletter een andere keer niet etc.
Ik wil dit de case in takt laten, maar ik heb geen idee meer met welke (regular expressions) replace statement ik dit zou kunnen oplossen.
It’s nice to be important but it’s more important to be nice