AndreR: BB-Code extrahieren

Hallo,
ich habe hier eine Variable mit BB-Code.

$line = "Dies ist ein [link]test Link[/link].";

Nun bräuchte ich eine Funktion, die mir den Text innerhalb des Tags herausfiltert und dann an eine selbstgeschriebene Funktion übergibt. Dannach sollen die Tags entfernt werden und der umgewandelte Text erscheinen. Dies kann wahlweise über return oder über eine echo-Funktion in der extrernen Routine erfolgen.

Die bereits fertige Funktion überprüft zunächst, ob es sich um einen internen Link handelt und verarbeitet dann diesen. Sie benötigt als Argument den Text zwischen [link] und [/link].

Mit preg_filter würde es wohl gehen, aber das ist noch nicht auf meinem Server verfügbar.

Hat jemand eine Idee, wie ich das am Besten anstellen kann?

Danke schonmal,
André

  1. Hi,

    Hat jemand eine Idee, wie ich das am Besten anstellen kann?

    http://www.christian-seiler.de/projekte/php/bbcode/

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Moin,

      http://www.christian-seiler.de/projekte/php/bbcode/

      da hast du mich falsch verstanden. Ich brauche hier eine Speziellösung, da mir die Tags vorgegeben sind. Ich muss den Inhalt dieses Tags in eine andere Funktion umleiten.

      Gruß,
      André

      1. Hi,

        http://www.christian-seiler.de/projekte/php/bbcode/

        da hast du mich falsch verstanden.

        Oder du es dir nicht richtig angeschaut.

        Ich brauche hier eine Speziellösung, da mir die Tags vorgegeben sind.

        Welche Tags die Klasse erkennt und was sie damit macht, ist sehr frei konfigurierbar.

        Ich muss den Inhalt dieses Tags in eine andere Funktion umleiten.

        Das ist bei der Klasse über Callback-Funktionen auch möglich.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. http://www.christian-seiler.de/projekte/php/bbcode/

          da hast du mich falsch verstanden.

          Oder du es dir nicht richtig angeschaut.

          Ich möchte nicht eine rießige Lib einbinden wegen einer einzigen Funktion.

          Gruß,
          André

          1. Ich möchte nicht eine rießige Lib einbinden wegen einer einzigen Funktion.

            Und was verstehst du an der PHP Dokumentation nicht
            http://php.net/manual/de/function.preg-replace-callback.php

            Das Self lebt hier. Wir erwarten eine gewisse Vorleistung beim Verinnerlichen einer Sprache und einen Versuch zu einer Lösung.
            Wir optimieren gerne.
            Die extensible Volllösung hast du ja schon selber abgelehnt.

            PS: Ich wette die Begehrlichkeiten wachsen ziemlich schnell.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Und was verstehst du an der PHP Dokumentation nicht
              http://php.net/manual/de/function.preg-replace-callback.php

              Ah, vielen Dank. Genau diese Funktion habe ich gesucht aber nicht gefunden.

              Jetzt habe ich aber noch ein Problem. Und zwar übergibt diese Funktion nicht nur den Teil zwischen den Tags sondern auch die Tags selbst. Kann ich das Verhalten irgendwie abstellen oder muss ich da nochmal ein preg_replace drüberlaufen lassen?

              $line = preg_replace_callback('/\[link\](.*?)\[\/link\]/', 'postlink', $line);

              Gruß,
              André

              1. Hi,

                Jetzt habe ich aber noch ein Problem. Und zwar übergibt diese Funktion nicht nur den Teil zwischen den Tags sondern auch die Tags selbst.

                Aber nicht nur, sondern auch.

                Schau dir den Inhalt des Arrays, das als Parameter übergeben wird, an.

                MfG ChrisB

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                1. Schau dir den Inhalt des Arrays, das als Parameter übergeben wird, an.

                  Ah, vielen Dank. Jetzt geht es! Hatte den falschen Index gewählt.

                  Gruß,
                  André