[REGEX] Zitate formatieren

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

  • [REGEX] Zitate formatieren

    Hallo liebe Web-Gemeinde,

    habe folgendes anliegen: Ich möchte einen beliebig langen Text, welcher aus einer Datenbank kommt, in einer textarea wiedergeben. Da es sich bei diesem Text in diesem Fall um ein Zitat handeln soll, soll dieser Text in jeder Zeile ein Zeichen vorangestellt bekommen. Soll also wie folgt aussehen:

    > Lorem ipsum ea nusquam vulputate liberavisse vim, ius id nemore
    > habemus necessitatibus. Id sea porro reprimique, ut mea idque
    > putent. Ad erat vidit temporibus eam, sea illud fabellas laboramus
    > ad. Omnes abhorreant definitiones ex sed.

    > Ferri vocent usu id. Ei simul noluisse posidonium his, mea volutpat
    > necessitatibus ut. Congue dolores eu mel, qui ignota antiopam an.

    $nval = preg_replace("/^(.*)/s", "> $val", $val);

    Hab mich wirklich dumm und dämlich gesucht im Web, die obige Lösung klatscht leider nur vor den gesamt Text einmal ein ">".

    Bin für hilfreiche Antworten dankbar

  • #2
    Re: [REGEX] Zitate formatieren

    Original geschrieben von thrawn
    die obige Lösung klatscht leider nur vor den gesamt Text einmal ein ">".
    Reguläre Ausdrücke sind gierig, engl. greedy - sie versuchen immer so viel wie möglich zu erwischen.

    Und da du den Modifier s verwendet hast, gilt auch der Zeilenumbruch als beliebiges Zeichen - also passt dein Suchmuster auf den gesamten Text als ein Treffer.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ja, ist auch kein wunder.

      in $val steht nunmal der komplette text vor, wenn du dann ein > davor setzt (also "> $val") dann kommt logischerweise auch nur ein > ganz am anfang. Übrigens (fast) egal welchen regulären ausdruck du verwendest...

      verwende mal /1 und den modifier m

      http://regexp-evaluator.de/evaluator...49ab/#ergebnis
      Zuletzt geändert von TobiaZ; 04.09.2006, 12:38.

      Kommentar


      • #4
        Ach herrje, es klingt so logisch... danke für die Antwort(en).

        Mein nächstes Dilemma: der Suchausdruck erkennt anscheinen nur einen Umbruch, bzw erkennt eine Zeile nur daran, dass auch ein Umbruch erfolgt. Muss ich nun Umbrüche selber setzen, falls ein Satz zu lang ist und er die Zeile als Fliesstext automatisch bricht, um mein "Zitat-zeichen" davor zu haben? Oder besteht di emöglichkeit, die Abfrage diesbezüglich noch zu optimieren?

        Kommentar


        • #5
          der Suchausdruck erkennt anscheinen nur einen Umbruch, bzw erkennt eine Zeile nur daran, dass auch ein Umbruch erfolgt.
          das wundert dich jetzt nicht wirklich, oder?

          Dass PHP nicht wissen kann, wann, wo und wie oft ein Browser den Code umbricht, soviel Verständnis und Weitsicht sollte man von einem Programmierer doch erwarten können.

          Die logische Schlussfolgerung ist, dass man sowas überhaupt gar nicht erst mit PHP anpackt.

          Kommentar

          Lädt...
          X