Hei!
Teen sivuilleni bbc koodeja esim. [bold] on lihavointi jne.
Nyt tuli ongelma vastaan, eli jos haluan että [phpk] ja [/phpk] värjää php koodin, niin miten sitten voin vielä estää html tagit, siis kun tuo highlight_string funkkarikin estää html tagit, mutta vain siltä alueelta missä niitä käytetään? Ja jos vielä estää html tagit, niin tuo highlight_string ei enää toimi oikein.
Koodini on tällähetkellä tämmönen:
<?php function bbc($s){ $s=stripslashes($s); $s=preg_replace("/(\[b\])(.+?)(\[\/b\])/", "<b>$2</b>", $s); $s=preg_replace("/(\[u\])(.+?)(\[\/u\])/", "<u>$2</u>", $s); $s=preg_replace("/(\[s\])(.+?)(\[\/s\])/", "<s>$2</s>", $s); $s=preg_replace("/(\[i\])(.+?)(\[\/i\])/", "<i>$2</i>", $s); $s=preg_replace("/(\[url\])(.+?)(\[\/url\])/", "<a href=\"$2\" class=\"sin\" target=\"_blank\">$2</a> ", $s); //$s=htmlspecialchars($s); //mihinhän tämä siis pitäs laittaa? if(preg_match("/\[php\]/", "$s")){ $s = str_replace("]\n", "]", $s); $match = array('#\[php\](.*?)\[\/php\]#se'); $replace = array("'<pre><div class=\"koodiphp\">'.highlight_string(stripslashes('$1'), true).'</div></pre>'"); $s=preg_replace($match, $replace, $s); $s=str_replace("\n", "<br>", $s); } return $s; } ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.