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.