Regex Problem: weiter suchen wenn vorhanden

  • PHP

    Regex Problem: weiter suchen wenn vorhanden

    Servus,

    ich bin gerade etwas am verzweifeln.

    Ich mache meine Webseite für mehrere Sprachen tauglich jedoch habe ich nun ein kleines Regex Problem.

    In der Datenbank habe ich folgende Werte:

    key
    en
    de
    welcome
    Welcome
    Herzlich Willkommen
    name
    My firstname is $1 and my lastname is $2.
    Mein Vorname ist $1 und mein Nachname ist $2.


    Meine Webseite ist wie folgt aufgebaut:

    PHP-Quellcode

    1. <?php
    2. ob_start("ob_gzhandler");
    3. echo "<b>{welcome}</b>\n{name,Max,Mustermann}";
    4. $content=ob_get_contents();
    5. ob_end_clean();
    6. $lang = mysql_query("SELECT key, en, de FROM lang", $conn);
    7. while($l = mysql_fetch_object($lang)) {
    8. if ($l->de) {
    9. $content = preg_replace('/{'.$l->key.'}/mi', $l->de, $content);
    10. } else {
    11. if ($l->en) $content = preg_replace('/{'.$l->key.'}/mi', $l->en, $content);
    12. }
    13. }
    14. echo $content;
    15. ?>

    Ergebnis:
    Herzlich Willkommen
    {name,Max,Mustermann}


    Im Quelltext steht somit der Key und ggf. auch noch witere Werte, die mit einem Komma nach dem Key getrennt sind. Wie kann ich nun nach dem Key suchen UND WENN VORHANDEN auch nach den weiteren Werten gruppieren?

    Mit folgendem Beispiel kann ich zwar die Werte abfragen aber natürlich bekomme ich danach die Key's ohne Werte nicht mehr ersetzt:

    PHP-Quellcode

    1. $content = preg_replace('/{'.$l->key.',(.*),(.*)}/mi', $l->de, $content);

    Ergenis:
    {welcome}
    Mein Vorname ist Max und mein Nachname ist Mustermann.


    Es kann somit {key} aber auch {key,value} oder sogar mehrere {key,value1,value2} vorkommen.

    Ich hoffe ihr konnt mir helfen.

    ---
    @Mod: Ich wusste nicht in welches Forum, wenn falsch bitte verschieben.

    Verschoben aus "Sonstige Problemstellungen". ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()