Ankündigung

Einklappen
Keine Ankündigung bisher.

BBCode - Tag verschachteln, Problem mit Reihenfolge.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • BBCode - Tag verschachteln, Problem mit Reihenfolge.

    Hallo,

    ich schreibe gerade eine Art BBCode für das Redaktionssystem zu meiner Seite. Jetzt stehe ich vor folgendem Problem:

    Ich wandle die BBCodes wie folgt in HTML - Anweisungen um:

    PHP-Code:
    function bbcode_format ($str) {
            
    $str htmlentities($str);
            
    $str preg_replace ('/\[b\](.*?)\[\/b\]/is''<span style="font-weight:bold;">$1</span>'$str);
            
    $str preg_replace ('/\[i\](.*?)\[\/i\]/is''<span style="font-style:italic;">$1</span>'$str);

            return 
    $str;

    Wenn jetzt aber ein Nutzer die Codes falsch verschachtelt, also z.B.
    Code:
    Fett und kursiv nur kursiv
    schreibt,
    dann kommt statt dessen

    Fett und kursiv nur fett raus.

    Gibt's da einen eleganten Weg, das zu vermeiden ?
    Danke,J.

  • #2
    mir fällt da jetzt keine sinnvolle Lösung ein. Wenn ihm bbcode ein Fehler ist, produzierst du auch einen HTML-Fehler. Du könntest natürlich ein Script schreiben, dass die Tags alle Überprüft und dann meckert, wenn was nicht stimmt. Aber ich glaub nicht, dass das mit einem reg. Ausdruck geht.

    Fett und kursiv nur kursiv
    Bei phpbb wirds auch falsch ausgegeben.

    Kommentar


    • #3
      Na gut, ist erstmal nicht so wichtig. Und wenn das "große" phpbb das auch falsch macht, dann wird die Lösung auch nicht so einfach sein, daß ich Lust hätte, sie zu implementieren

      Kommentar


      • #4
        An sich kannst du das schon ... mittels LiFo(last in first out) machen ...

        Sprich .. du machst dir 'n String mit den geöffneten Tags ... und der der als letztes steht muss auch als erstes wieder geschlossen werden ...



        Kommentar


        • #5
          Stimmt. Danke für die Anregung. Schreib ich mir mal auf für später !

          Kommentar

          Lädt...
          X