Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: bbcodes ongelma

ipe [21.03.2005 16:11:16]

#

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;
  }
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta