Ankündigung

Einklappen
Keine Ankündigung bisher.

Dynamische Zeichenkette ersetzen

Einklappen

Neue Werbung 2019

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

  • Dynamische Zeichenkette ersetzen

    Hallo Leute,

    ich schreibe gerade eine eigene kleine Forensoftware und möchte die Inhalte aus meiner jetzigen Forensoftware übernehmen. Das klappt soweit auch gut.

    In den Posts der alten Forensoftware tauchen jedoch oft Zeichenketten wie z.B:

    Code:
    [zitatcode autor="dings" datum="01.04.2010" timestamp="1234567890"]Text Text Text[/zitatcode]
    auf. Also viel Code im Stil von BBCode. Da ich in meinem eigenen neuen Forum andere Formatierungen verwende würde ich diesen Code gerne anpassen. Da er aber in jedem Post anders aussieht (das Datum, Timestamp und der Autor sind logischerweise immer anders) weiß ich nicht wie ich vorzugehen habe.

    Am besten wäre eine Funktion die mir die Attribute (autor, datum, timestamp) und den Text als Variable bereitstellt.

    Eine solche Funktion ist leider derzeit zu viel für meinen PHP Kentnissstand, deshalb wollte ich mal hier bei Euch fragen ob Ihr mir helfen könnt. Danke jetzt schonmal!


  • #2
    Reguläre Ausdrücke helfen dir weiter: [MAN]preg_match[/MAN]

    Zitat von moviemaker Beitrag anzeigen
    Eine solche Funktion ist leider derzeit zu viel für meinen PHP Kentnissstand, deshalb wollte ich mal hier bei Euch fragen ob Ihr mir helfen könnt. Danke jetzt schonmal!
    Willst du dann nicht erstmal mit was kleinerem anfangen?
    @fschmengler - @fschmengler - @schmengler
    PHP Blog - Magento Entwicklung - CSS Ribbon Generator

    Kommentar


    • #3
      Dafür bieten sich reguläre Ausdrücke an, mit denen du die BBCodes in ihre Teile zerlegen kannst. Dabei behilflich sind dir die Funktion PHP: preg_match_all - Manual und einige Tutorials zu regulären Ausdrücken wie Der RegExp-Evaluator - RegExp-Tutorial .
      http://hallophp.de

      Kommentar


      • #4
        Zitat von Asipak Beitrag anzeigen
        Dafür bieten sich reguläre Ausdrücke an, mit denen du die BBCodes in ihre Teile zerlegen kannst. Dabei behilflich sind dir die Funktion PHP: preg_match_all - Manual und einige Tutorials zu regulären Ausdrücken wie Der RegExp-Evaluator - RegExp-Tutorial .
        Ich würde hier aber eher zur Funktion [MAN]preg_replace_callback[/MAN] neigen.
        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
        http://www.lit-web.de

        Kommentar


        • #5
          Zitat von fab Beitrag anzeigen
          Reguläre Ausdrücke helfen dir weiter: [MAN]preg_match[/MAN]

          Willst du dann nicht erstmal mit was kleinerem anfangen?
          Naja sooo schlecht bin ich garnicht was PHP angeht Das Forum ist schon so gut wie fertig. Nur was reguläre Ausdrücke angeht bin ich halt noch ein blutiger Anfänger und muss immer im Netz nachschauen. Ich hatte fauler weise auf eine fertige Funktion gehofft aber wahrscheinlich ist es echt besser sich mal damit beschäftigen.

          Werde also mal das Tutorial von Asipak durcharbeiten. So ein komplettes Tutorial hatte ich bisher noch nicht gefunden. Danke für Eure Antworten!

          Kommentar


          • #6
            Ich hatte fauler weise auf eine fertige Funktion gehofft
            Auf welcher Grundlage denn bitte? Du hast nicht mal geschrieben, wie Dein neues Format aussieht!
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Hallo Nikosch,

              ich wollte die Beiträge via Schleife nach BBCodes durchsuchen und sie ersetzen.

              Beispiel:
              Code:
              [zitat autor="testmitglied" datum="21.01.2010"]Das ist der Text[/zitat];
              Die Funktion die ich am Ende haben möchte, sollte folgende Variablen zurückgeben wenn sie BBCode findet:

              $typ = "zitat";
              $autor = "testmitglied";
              $datum = "21.01.2010";
              $text = "Das ist der Text";

              mit Hilfe dieser Variablen könnte ich dann den BBCode in eine neue Form umwandeln bzw. ersetzen.

              Kommentar


              • #8
                Da es aber auch verschachtelte Zitate geben kann ist die Funtion [MAN]preg_replace_callback[/MAN] die bessere Wahl.
                Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                http://www.lit-web.de

                Kommentar


                • #9
                  Da es aber auch verschachtelte Zitate geben kann ist die Funtion preg_replace_callback die bessere Wahl.
                  Das kannst du auch mit einer Schleife machen!
                  Code:
                  [zitat autor="testmitglied" datum="21.01.2010"]
                    Das ist der Text
                    [zitat autor="anderes_testmitglied" datum="21.01.2010"]
                      Das ist ein anderer Text
                    [/zitat]
                  [/zitat]
                  Erster Schritt:
                  Code:
                  [zitat autor="testmitglied" datum="21.01.2010"]
                    Das ist der Text
                    [quote=anderes_testmitglied]
                      Das ist ein anderer Text
                    [/quote]
                  [/zitat]
                  Zweiter Schritt:
                  Code:
                  [quote=testmitglied]
                    Das ist der Text
                    [quote=anderes_testmitglied]
                      Das ist ein anderer Text
                    [/quote]
                  [/quote]
                  Da muss es nicht unbedingt preg_replace_callback() sein.
                  http://hallophp.de

                  Kommentar


                  • #10
                    Na aber ich habe mit preg_replace_callback bedeutend weniger Schreibarbeit. Ob es schneller ist kann ich nicht beurteilen.
                    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                    http://www.lit-web.de

                    Kommentar

                    Lädt...
                    X