Hi, ich will ein erweitertes BBCode-Mod für Phorum schreiben, das auch Listen und Tabellen ermöglicht, also sowas wie [ list]
[ *]Punkt 1
[/ list] . Ich habe auch schon ziemlich genau im Kopf, wie das ganze funktionieren soll. Allerdings scheitere ich an einer Kleinigkeit:
'Eindimensionale' BBCodes wie [ i]Kursivtext[ /i] oder so ist ja überhaupt kein Problem, funktioniert ja so:
Bei 'mehrdimensionalen' Tags wie Listen kann ich das nicht wirklich mit einem preg_replace erledigen. also dachte ich ich packe das Parsen des Zeugs zwischen den beiden List-Tags in eine Funktion, würde dann allerdings so aussehen:
Funktioniert nur irgendwie nicht, weil er die Variable $1 nicht kennt. Gibt es irgendeine Möglichkeit, wie ich die in dem Regex erzeugte Variable $1 einer Funktion übergebe?
[ *]Punkt 1
[/ list] . Ich habe auch schon ziemlich genau im Kopf, wie das ganze funktionieren soll. Allerdings scheitere ich an einer Kleinigkeit:
'Eindimensionale' BBCodes wie [ i]Kursivtext[ /i] oder so ist ja überhaupt kein Problem, funktioniert ja so:
PHP-Code:
$body = preg_replace("/\[i\](.+?)\[\/i\]/is","<i>$1</i>",$body);
PHP-Code:
$body = preg_replace("/\[list\](.+?)\[\/list\]/is","<ul>".parse_list($1)."</ul>",$body);
function parse_list($text) {
//do something with $text
return $text
}
Kommentar