Voor een website die ik aan het maken ben, ben ik bezig met bbcode en code highlighters.
Ik gebruik hier als voorbeeld even de CSS highlighter.
Alles tussen [css] en [/css] moet door de functie css($string) worden gegooid.
Dat doe ik tot nu toe zo:
Hier kwam ik toen de modifier 'e' tegen, en dat leek me ideaal, dus ik ging het zo proberen:
Ik krijg dan deze error:
Alvast bedankt!
Mijn functie css($string):
Ik gebruik hier als voorbeeld even de CSS highlighter.
Alles tussen [css] en [/css] moet door de functie css($string) worden gegooid.
Dat doe ik tot nu toe zo:
PHP:
1
2
3
4
5
6
| $css=preg_split("#\[css\](.*?)\[\/css\]#msi", $parse, -1, PREG_SPLIT_DELIM_CAPTURE); for($i=1; $i<count($css)-1; $i=$i+2) { $css[$i]=css($css[$i]); } $parse=implode("", $css); |
Hier kwam ik toen de modifier 'e' tegen, en dat leek me ideaal, dus ik ging het zo proberen:
PHP:
1
| $parse=preg_replace("#\[css\](.*?)\[\/css\]#msie", css("\\1"), $parse); |
Ik krijg dan deze error:
Klopt mijn "korte" code niet, of moet ik het met preg_split doen?Parse error: syntax error, unexpected '<' in /home/WEGGEHAALD/functions.parse.php(103) : regexp code on line 1
Fatal error: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Failed evaluating code: <pre class="code css"><code>#container { width: 800px; margin: 0 auto; }</code></pre> in /home/WEGGEHAALD/functions.parse.php on line 103
Alvast bedankt!
Mijn functie css($string):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| function css($css) { // we gebruiken @ als # $css=html_entity_decode($css); $css=str_replace("\n", "", $css); $css=preg_replace("@[\"]{1}(.*?)[\"]{1}@msi", "<span class=\"css-quote\">\"\\1\"</span>", $css); $css=preg_replace("@[\']{1}(.*?)[\']{1}@msi", "<span class=\"css-quote\">'\\1'</span>", $css); $css=preg_replace("@(\/\*.*?\*\/)@msi", "<span class=\"commentaar\">\\1</span>", $css); $css=preg_replace("@([#\.]?[a-z]*)[\s]*\{@msi", "<span class=\"css-selector\">\\1</span> {", $css); $css=preg_replace("@[\s]*([a-z\-]*)[\s]*:[\s]*(.*?)[;]+[\s]*@msi", "\n\t<span class=\"css-key\">\\1</span>: <span class=\"css-value\">\\2</span>;\t", $css); $css=preg_replace("@[\s]*\}@msi", "\n}", $css); $css=str_replace("!important", "<span class=\"css-important\">!important</span>", $css); return "<pre class=\"code css\"><code>".$css."</code></pre>"; } |