TimonWorld: BB Code

Hallo!

Ich such eine Funktion mit den ich BB Codes in HTML umwandeln kann, z.B.:

$text = "Hier der Beispieltext";
echo bb2html($text);

Ich mache nämlich für meine Ma ein kleines CMS! Nur das ist blöd, wenn man keine Links etc. einfügen kann! Und mit purem HTML kann meine Ma nix anfangen, sie kennt nur bbCodes!

Gruß,
Timon

  1. $text = "Hier der Beispieltext";
    echo bb2html($text);

    function bb_to_html ($input)
      {
       $pattern[0]  = "/[url=((f|ht)tp[s]?://[^<> \n]+?)](.+?)[/url]/i";
       $replacement[0] = '<a href="\1" target="_blank">\3</a>';

    $pattern[1]  = usw...";
       $replacement[1] = 'usw...';

    $input = preg_replace($pattern, $replacement, $input);

    $input = str_replace(":|" , "<img src=img/smileys/confused.gif>" , $input);
         $input = str_replace(":D" , "<img src=img/smileys/grin.gif>" , $input);
         $input = str_replace(":P" , "<img src=img/smileys/hehe.gif>" , $input);
         $input = str_replace("^^" , "<img src=img/smileys/lol.gif>" , $input);
         $input = str_replace(":(" , "<img src=img/smileys/mad.gif>" , $input);
         $input = str_replace(";D" , "<img src=img/smileys/wink.gif>" , $input);

    return $input;
      }

    1. function bb_to_html ($input)
        {
         $pattern[0]  = "/[url=((f|ht)tp[s]?://[^<> \n]+?)](.+?)[/url]/i";
         $replacement[0] = '<a href="\1" target="_blank">\3</a>';

      $pattern[1]  = usw...";
         $replacement[1] = 'usw...';

      Problemfall Zeile 10:

      $input = preg_replace($pattern, $replacement, $input);

      [...]

      return $input;
        }

      Erstmal Danke! Aber es erscheint ein Fehler:

      Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\xampplite\htdocs\pageedit.php on line 10

      Und B, I und normale URL's gehen nicht:

      Mein Code:

      [b]Hallo Mama![/b]
      [i]HAHA![/i][url]http://www.url.de[/url]
      [url=http://www.url.de]goto the url[/url]

      Hier wird nur die 2. url unterstrichen!

      1. Hallo Timon,

        Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\xampplite\htdocs\pageedit.php on line 10

        [x] du möchtest dir den Code auch anschauen und nicht nur blind übernehmen.

        Grüße aus Nürnberg
        Tobias

        1. [x] du möchtest dir den Code auch anschauen und nicht nur blind übernehmen.

          Grüße aus Nürnberg
          Tobias

          Oh, sorry stimmt! ich habe mal etwas erweitert, dass auch noch eine nur [URL] Funktion dazu kommt - Ohne ERRORS:

          function bb2html ($input)
            {
             $pattern[0]  = "/[url=((f|ht)tp[s]?://[^<> \n]+?)](.+?)[/url]/i";
             $replacement[0] = '<a href="\1" target="_blank">\3</a>';
             $input = preg_replace($pattern, $replacement, $input);

          $pattern[0]  = "/[url]((f|ht)tp[s]?://[^<> \n]+?)[/url]/i";
             $replacement[0] = '<a href="\1" target="_blank">\1</a>';
             $input = preg_replace($pattern, $replacement, $input);

          /* Smilies habe ich hier mal kurz weggelassen! */

          }

          Gruß,
          Timon

  2. Hallo Timon,

    Ich such eine Funktion mit den ich BB Codes in HTML umwandeln kann, z.B.:

    hilft dir die BBCode-Parserklasse von Christian Seiler vielleicht?

    Grüße aus Nürnberg
    Tobias

    1. Hallo Timon,

      Hallo zurück!

      Ich such eine Funktion mit den ich BB Codes in HTML umwandeln kann, z.B.:
      hilft dir die BBCode-Parserklasse von Christian Seiler vielleicht?

      Geht aber leider auch nicht:

      Parse error: syntax error, unexpected T_CLONE, expecting T_STRING in C:\xampplite\htdocs\stringparser_bbcode.class.php on line 1235

      Sorry!

      Gruß,
      Timon

      1. Parse error: syntax error, unexpected T_CLONE, expecting T_STRING in C:\xampplite\htdocs\stringparser_bbcode.class.php on line 1235

        Sorry!

        Sorry RTFM!
        Die Klasse ist das was Dir wirklich helfen kann.
        Wenn Du nicht im Ansatz bereit bist die mit den Grundlagen zu beschäftigen, dann gehen lieber Blumen pflücken oder widme Dich sonstigen Tätigkeiten die Dir mehr liegen.

        TomIRL

        1. Sorry RTFM!
          Die Klasse ist das was Dir wirklich helfen kann.

          Tja aber die Datei hat über 1000 zeilen! wo soll ich da nachgucken,nach einem anderem 'clone'

          Wenn Du nicht im Ansatz bereit bist die mit den Grundlagen zu beschäftigen, dann gehen lieber Blumen pflücken oder widme Dich sonstigen Tätigkeiten die Dir mehr liegen.

          Ich habe mit PHP und MySQl erst vor drei Wochen mit angefangen, ich übe  ja noch! *gg*

          1. Hallo Timon,

            Tja aber die Datei hat über 1000 zeilen! wo soll ich da nachgucken,nach einem anderem 'clone'

            Praktisch jeder Editor besitzt eine Suchfunktion. Und außerdem kümmert sich Christian sehr ausdauernd um Fragen oder bei Problemen mit seiner Parser-Klasse.

            Schöne Grüße,

            Johannes

            --
            Das sage ich deshalb, weil ich Hompagebauer bin und Ahnung davon .
            ss:| zu:) ls:[ fo:) de:] va:) ch:) n4:| rl:) br:< js:| ie:{ fl:( mo:}
          2. Sorry RTFM!
            Die Klasse ist das was Dir wirklich helfen kann.

            Tja aber die Datei hat über 1000 zeilen! wo soll ich da nachgucken,nach einem anderem 'clone'

            Wenn Du nicht im Ansatz bereit bist die mit den Grundlagen zu beschäftigen, dann gehen lieber Blumen pflücken oder widme Dich sonstigen Tätigkeiten die Dir mehr liegen.

            Ich habe mit PHP und MySQl erst vor drei Wochen mit angefangen, ich übe  ja noch! *gg*

            Sorry war wohl doch etwas übereilt, und hinter der ganzen Sache steckt offenbar ein echter Fehler.
            Nimms mir nicht krumm :-)
            Viel Spaß beim üben, die Klasse ist übrigens echt gut, und lese Dir die Doku wirklich mal zu durch die hilft über viele Klippen hinweg.
            TomIRL

      2. Hallo TimonWorld,

        Parse error: syntax error, unexpected T_CLONE, expecting T_STRING in C:\xampplite\htdocs\stringparser_bbcode.class.php on line 1235

        Oh. Du verwendest PHP 5 und da funktioniert die Klasse nicht mehr. Mist, ich hätte das doch testen sollen. Ich werde den Fehler heute Abend korrigieren. Danke für den Hinweis.

        Viele Grüße,
        Christian

        1. Oh. Du verwendest PHP 5 und da funktioniert die Klasse nicht mehr. Mist, ich hätte das doch testen sollen. Ich werde den Fehler heute Abend korrigieren. Danke für den Hinweis.

          Nunja ich verwende PHP5 mit XAMPP, aber auf dem server glaub ich auch! Aber ich glaub mit Global_register oder so ähnlich kann man einige funktionen aus php3,4 verwenden

          Gruß,
          Timon

          1. Hallo TimonWorld,

            Nunja ich verwende PHP5 mit XAMPP, aber auf dem server glaub ich auch! Aber ich glaub mit Global_register oder so ähnlich kann man einige funktionen aus php3,4 verwenden

            Nein, es geht beim Fehler nicht um alte Funktionen von PHP4 oder gar PHP3. Ich habe in der Klasse eine Methode clone genannt - und clone ist ein reserviertes Wort unter PHP5 - in vorigen Versionen allerdings nicht. Deswegen gibt es bei PHP5 den von Dir angegebenen Fehler, bei PHP4 jedoch nicht.

            Der Klasse ist es übrigens egal, ob register_globals an oder aus ist - eigentlich müssten ihr alle Einstellungen egal sein.

            Viele Grüße,
            Christian

        2. habe d'ehre

          Oh. Du verwendest PHP 5 und da funktioniert die Klasse nicht mehr. Mist, ich hätte das doch testen sollen. Ich werde den Fehler heute Abend korrigieren. Danke für den Hinweis.

          Komisch, bei mir auf dem Laptop laeuft PHP5 mit Deiner Klasse und ich kriege keine Fehler. Allerdings taucht auch nirgendwo "clone" auf. Hast Du zwei Versionen?

          man liest sich
          Wilhelm

          1. Hallo Wilhelm,

            Oh. Du verwendest PHP 5 und da funktioniert die Klasse nicht mehr. Mist, ich hätte das doch testen sollen. Ich werde den Fehler heute Abend korrigieren. Danke für den Hinweis.

            Komisch, bei mir auf dem Laptop laeuft PHP5 mit Deiner Klasse und ich kriege keine Fehler. Allerdings taucht auch nirgendwo "clone" auf. Hast Du zwei Versionen?

            Hast du vielleicht noch die alte Version? In der kommt nämlich wirklich kein 'clone' vor. Christian hat die Klasse aber letztens nochh einmal überarbeitet (oder sogar komplett neu geschhrieben, ich bin mir nicht sicher).

            Schöne Grüße,

            Johannes

            --
            Das sage ich deshalb, weil ich Hompagebauer bin und Ahnung davon .
            ss:| zu:) ls:[ fo:) de:] va:) ch:) n4:| rl:) br:< js:| ie:{ fl:( mo:}
            1. Hallo Johannes,

              Hast du vielleicht noch die alte Version? In der kommt nämlich wirklich kein 'clone' vor. Christian hat die Klasse aber letztens nochh einmal überarbeitet (oder sogar komplett neu geschhrieben, ich bin mir nicht sicher).

              Komplett neu geschrieben, die Codezeilenanzahl hat sich versechsfacht. ;-)

              Viele Grüße,
              Christian

        3. Hallo,

          Parse error: syntax error, unexpected T_CLONE, expecting T_STRING in C:\xampplite\htdocs\stringparser_bbcode.class.php on line 1235

          Oh. Du verwendest PHP 5 und da funktioniert die Klasse nicht mehr. Mist, ich hätte das doch testen sollen. Ich werde den Fehler heute Abend korrigieren. Danke für den Hinweis.

          Unter < http://www.christian-seiler.de/projekte/php/bbcode/download.html> gibt es jetzt eine Version, die mit PHP 5 getestet wurde.

          Viele Grüße,
          Christian