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

  • moviemaker
    hat ein Thema erstellt Dynamische Zeichenkette ersetzen.

    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!

  • litterauspirna
    antwortet
    Na aber ich habe mit preg_replace_callback bedeutend weniger Schreibarbeit. Ob es schneller ist kann ich nicht beurteilen.

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    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.

    Einen Kommentar schreiben:


  • litterauspirna
    antwortet
    Da es aber auch verschachtelte Zitate geben kann ist die Funtion [MAN]preg_replace_callback[/MAN] die bessere Wahl.

    Einen Kommentar schreiben:


  • moviemaker
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • moviemaker
    antwortet
    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!

    Einen Kommentar schreiben:


  • litterauspirna
    antwortet
    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.

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    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 .

    Einen Kommentar schreiben:


  • fab
    antwortet
    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?

    Einen Kommentar schreiben:

Lädt...
X