[ Jezdimir Lončar @ 01.12.2007. 13:11 ] @
Pozdrav svima!
Ovako, pravim neku klasu koja je inače dio mog frameworka, i ona bi trebalo da parsuje BBCode.
Klasu sam fino uradio, PHP 4, i sve to, bold, underline i slični kodovi rade, osim kad posle njih ide novi red.
Naime, kada ukucam nešto tipa:
Code:

[b]
Bold
[/b]

On mi vrati:
Code:

[b]
Bold<br /> [/b]

A hoću da mi vrati (tj. trebao bi):
Code:

<strong>Bold</strong>

E sad, kad se koristi Bold tag, to i nije problem (toliki).
Međutim, kada se koristi recimo code tag, niko ne kuca:
Code:
moj kod nova linija nova linija

Već:
Code:

moj kod
nova linija
nova linija

I tu mi kod "puca".
Klasu sam upload-ovao.
Nadam se da ce te mi pomoći.
[ Jezdimir Lončar @ 01.12.2007. 13:26 ] @
Evo uspio sam da sredim da kod ne puca, zato što sam dodao:
/six u patternu u preg_replace-u.
Međutim, sad mi se dešava sledeće:
Kad ukucam kod:
Code:

[php]
<?php
echo "Hello world!";
?>
[/php]

On mi vrati samo:
Code:

<textarea id="cp12" class="codepress php readonly-on" style="width:200px;height:100px;" wrap="off">
<br /> </textarea>

Znaci samo <br /> je u textarea.
Evo koda (samo sam izmjenio funkciju code):
Code:

function code($text) {
$pid = rand(00,99);
$pid = "cp".$pid;
$width = 200;
$height = 100;

$text = preg_replace("/\[code\](.*?)\[\/code\]/six","<textarea id=\"$pid\" class=\"codepress text readonly-on\" style=\"width:".$width."px;height:".$height."px;\" wrap=\"off\">$1</textarea>",$text);
$text = preg_replace("/\[html\](.*?)\[\/html\]/six","<textarea id=\"$pid\" class=\"codepress html readonly-on\" style=\"width:".$width."px;height:".$height."px;\" wrap=\"off\">$1</textarea>",$text);
$text = preg_replace("/\[php\](.*?)\[\/php\]/si","<textarea id=\"$pid\" class=\"codepress php readonly-on\" style=\"width:".$width."px;height:".$height."px;\" wrap=\"off\">$1</textarea>",$text);
$text = preg_replace("/\[js\](.*?)\[\/js\]/six","<textarea id=\"$pid\" class=\"codepress javascript readonly-on\" style=\"width:".$width."px;height:".$height."px;\" wrap=\"off\">$1</textarea>",$text);
return $text;
}
[ Nemanja Avramović @ 02.12.2007. 08:53 ] @
Koristi ovo, ili barem pogledaj kako je ovde odrađeno, jer meni ova klasa radi perfektno.

Koristiš je ovako:

Code:
$bbcode = new bbcode();

$bbcode->add_tag(array('Name'=>'b','HtmlBegin'=>'<span style="font-weight: bold;">','HtmlEnd'=>'</span>'));
[ Jezdimir Lončar @ 02.12.2007. 10:54 ] @
Prvo, hvala na odgovoru.
Ma ja sam htio nesta svoje da napravim, kontas, ali izgleda da cu morati da koristim neku vec napravljenu klasu, da ne gubim vrijeme.
Tako da sam sad nasao CodeLighter klasu na phpclasses.org i nju cu koristiti jer ima podrsku za [php] tag.
Mozda je malo i prepravim.
Puno pozdrava,
Jezdimir.