Nicht mehr ganz neu hier
Hi @ all.
Ich habe ein kleines bis mittelschweres Problem mit preg_replace. Der Text wird einfach nicht richtig ersetzt. Hier der Code:
Das ist der vom Benutzer eingegeben Text:
Das ist mein Parser für die BBCodes:
Und das ist die Ausgabe im Quelltext, nachdem das Dokument geparst wurde:
Meine Frage ist jetzt, warum diese Ausgabe dabei rauskommt und nicht
Ich hoffe ihr könnt mir weiterhelfen....
Vielen Dank
MrManko
Ich habe ein kleines bis mittelschweres Problem mit preg_replace. Der Text wird einfach nicht richtig ersetzt. Hier der Code:
Das ist der vom Benutzer eingegeben Text:
HTML:
[color=#660000]Foo[/color]
PHP:
<?php
function bbcode2html($string) {
$string = str_replace("[b]","<b>",$string);
$string = str_replace("[/b]","</b>",$string);
$string = str_replace("[i]","<i>",$string);
$string = str_replace("[/i]","</i>",$string);
$string = str_replace("[u]","<u>",$string);
$string = str_replace("[/u]","</u>",$string);
$string = str_replace("[center]","<center>",$string);
$string = str_replace("[/center]","</center>",$string);
$string = preg_replace('/\[url=([^ ]+).*\](.*)\[\/url\]/', '<a href="$1" target="_blank">$2</a>', $string);
$string = preg_replace('/\[image=([^ ]+).*\](.*)\|(.*)\|(.*)\|(.*)\|(.*)\[\/image\]/', '<div class="pic_$6"><img src="../images/userpics/fullres/$1" alt="$4" /><br />Quelle:$3; Fotograf:$2<br />$5</div>', $string);
$string = preg_replace('/\[image=([^ ]+).*\](.*)\[\/image\]/', '<div class="pic_$2"><img src="images/userpics/thumbnail/$1" alt="$4" /></div>', $string);
$string = preg_replace('|\[color=(.*)\]|', '<span style="color:#$1;">', $string);
$string = preg_replace('|\[/color\]|','</span>', $string);
$string = preg_replace('|\[font-size=(.*)\]|', '<span style="font-size:$1pt;">', $string);
$string = preg_replace('|\[/font-size\]|','</span>', $string);
return $string;
}
?>
Code:
<span style="color:#660000]Foo[/color;">
Code:
<span style="color:#660000;">Foo</span>
Vielen Dank
MrManko