razor: Wie ersetzt ihr diesen BB-Code?

Hy!

Ich weiß ja nicht warum der so heißt, aber ich würde auch gerne solchen Code in mein Forum einbauen. Wie ich [b],[i] und[u] ersetze weiß ich schon, is ja nicht schwer. Aber wie macht ihr zum Beispiel folgendes:

[color=#777777]text[/color] oder [link]http://...[/link] ?

Arbeitet ihr da mit Regulären Ausdrücken, oder geht das auch einfacher?

mfg, razor

  1. Hi,

    [color=#777777]text[/color] oder [link]http://...[/link] ?
    Arbeitet ihr da mit Regulären Ausdrücken,

    sowie Du Textinhalte nur "ungefähr" angeben kannst, nicht Zeichen für Zeichen, wirst Du Regular Expressions nutzen müssen. Genau das ist nämlich der Zweck derselben :-)

    Cheatah

  2. Hallo!

    Ich weiß ja nicht warum der so heißt, aber ich würde auch gerne solchen Code in mein Forum einbauen. Wie ich [b],[i] und[u] ersetze weiß ich schon, is ja nicht schwer. Aber wie macht ihr zum Beispiel folgendes:

    [color=#777777]text[/color] oder [link]http://...[/link] ?

    Siehe /includes/bbcode.php (wer suchet, der findet; hier gibt es nur Hilfe zur Selbsthilfe ;)):
    $text = preg_replace("/[color=(#[0-9A-F]{6}|[a-z]+):$uid]/si", $bbcode_tpl['color_open'], $text);

    So aus dem Kopf hätte ich auf den regulären Ausdruck ~[color=(#[A-F0-9]{6})]~i getippt. |[a-z]{3} ist auch einleuchtend, denn man kann Farbangaben auch dreistellig notieren. Das :$uid verstehe ich nicht, dazu fehlt mir das tiefere Verständnis von der internen phpBB-Arbeitsweise, vielleicht ist es auch RegExp-Syntax, welche mir fremd ist.

    Ich hab's auf die schnelle so gelöst:
    <?php
    $string='text[color=#777777]murks[/color]murks';
    $string=preg_replace("~[color=(#[A-F0-9]{6})]~i", "<span style="color:\1">", $string);
    $string=str_replace("[/color]", "</span>", $string);
    echo($string);
    ?>

    Arbeitet ihr da mit Regulären Ausdrücken, oder geht das auch einfacher?

    Genau, reguläre Ausdrücke. Einfacher geht es afaik nicht.

    Grüße,
    Mathias