Mariana: preg_replace Funktion

Hallo,

ich bin seit gestern auf der Suche nach einer Lösung für folgendes Problem: Ich versuche sozusagen BB - Codes zu erzeugen und will dabei eine "Oder" Ausdruck erschaffen. Bedeutet, [b] soll das gleiche wie [fett] tun können, ohne dass ich direkt zwei Arrays erzeugen muss die dann durch eine Schleife müssen.

  
$text = "=h= Text =he=";  
$text = preg_replace("~(=h=|=headline=)(.*)(=he=|=headlinee=)~i","<h1>\\1</h1>",$text);  

Mit (x|y) habe ich es in der Weise probiert und auch mit ((x)|(y)), allerdings gibt er mir dann folgendes Muster zurück: <h1>=h=</h1> anstatt <h1> Text </h1>

Für die Lösung wäre ich sehr dankbar :)

  1. ich bin seit gestern auf der Suche nach einer Lösung für folgendes

    Problem:

    Zitat 231

    Ich versuche sozusagen BB - Codes zu erzeugen

    Warum nimmst du nicht "echte" BB-Codes anstatt "sozusagen BB-Codes" - eine Best Practice oder einen Standard zu verwenden ist immer schlauer, als etwas selbst zu stricken.

    Fertige BB-Code-Parser gibt es auch genug.

    $text = preg_replace("~(=h=|=headline=)(.*)(=he=|=headlinee=)~i","<h1>\1</h1>",$text);

    gibt er mir dann folgendes Muster zurück: <h1>=h=</h1>

    Was auch klar ist da \1 auf die erste Klammer verweist.

    1. Danke,
      jetzt weiß ich wies funktioniert. Man findet aber auch ziemlich schwer Tutorials, wo überhaupt mal sowas erklärt wird :(

      Nochmals vielen Dank :)

      1. jetzt weiß ich wies funktioniert. Man findet aber auch ziemlich schwer Tutorials, wo überhaupt mal sowas erklärt wird :(

        PCRE sind auch kein Thema, das man "einfach mal so im vorbeigehen" aus einem Tutorial lernt - dafür sind sie viel zu umfangreich und (logisch) Komplex.