Ik wil een (HTML) code highlighter bouwen, denk hierbij aan iets als de PHP functie highlight_string. Deze functie is imho zwaar achterhaald. Ik wil graag zelf iets dergelijks maken, maar dan dus uitgebreider (denk hierbij aan kleuren in kunnen stellen met CSS, geldige XHTML code ipv de zwaar achterhaalde < font > tags, etc).
Om bij het begin te beginnen, ik heb nu een regular expression
waarmee ik tags uit een stuk HTML code kan halen.
Nu komt echter het tricky punt: ik wil < span > tags om de HTML tags heenzetten, die ik dus vervolgens een kleurtje kan geven. Als ik echter dit doe:
Heb ik een probleem, de span tags staan nu in dezelfde string als de HTML code, terwijl ik wil dat de HTML code op mijn scherm verschijnt, en de toegevoegde tags niet
Ik kan natuurlijk werken met htmlspecialchars(), en die zal ik ook wel nodig hebben, maar hoe kan ik ervoor zorgen dat ik toch met deze regular expression kan werken? Om je special chars al in je pattern string te gebruiken zuigt namelijk nogal
Bij voorbaat dank
Om bij het begin te beginnen, ik heb nu een regular expression
PHP:
1
| $pattern = "/(<\/?)([A-z][A-z0-9])*( *[A-z]+(=\".*\")?)* *\/?>/"; |
waarmee ik tags uit een stuk HTML code kan halen.
Nu komt echter het tricky punt: ik wil < span > tags om de HTML tags heenzetten, die ik dus vervolgens een kleurtje kan geven. Als ik echter dit doe:
PHP:
1
2
3
| $pattern = "/(<\/?)([A-z][A-z0-9])*( *[A-z]+(=\".*\")?)* *\/?>/"; $replace = "<span>$0</span>"; $new = preg_replace($pattern, $replace, $code); |
Heb ik een probleem, de span tags staan nu in dezelfde string als de HTML code, terwijl ik wil dat de HTML code op mijn scherm verschijnt, en de toegevoegde tags niet
Ik kan natuurlijk werken met htmlspecialchars(), en die zal ik ook wel nodig hebben, maar hoe kan ik ervoor zorgen dat ik toch met deze regular expression kan werken? Om je special chars al in je pattern string te gebruiken zuigt namelijk nogal
Bij voorbaat dank