Font-Tags löschen

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

  • Font-Tags löschen

    Hallo Leute,

    ich raffs nicht

    Ich möchte aus einem String leere Font-Tags entfernen. Das mache ich momentan so:

    preg_match_all("#<font>(.*)</font>#isxU", $content, $matches);

    $total = count($matches[0]);
    for ($i=0; $i < $total; $i++){
    $orig = $matches[0][$i];
    $replace = $matches[1][$i];
    $content = str_replace($orig, $replace , $content);
    }

    Funktioniert auch wunderbar, so lange die Tags nicht verschachtelt sind.
    Wenn ich z.B. so was habe:

    bla bla <font>text bla <font>weiterer text</font></font>

    ...dann erkennt er nur einen davon und lässt den anderen drin.
    Mein erster Versuch war nur mit preg_replace():
    $content = preg_replace("#<font>(.*)</font>#isxU", "\\1",$content;

    Gleiches Spiel" Hintereinander ja, verschachtelt nein.

    Hat jemand eine Lösung?

    Thanx,
    Andi

  • #2
    Code:
     $content = preg_replace("#<font>|</font>#si "," ",$content)
    // ungetestet
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      Danke, das würde mir ja dann aber alle font-Tags löschen, auch die mit Inhalt, bzw. den Tag zum Schließen. <font color=#FF0000>bla...</font> soll z.B. nicht gelöscht werden nur wenn der Font-Tag wirklich leer ist. <font>bla...</font>.

      Grüße, Andi.

      Kommentar


      • #4
        dann so:

        Code:
         $content = preg_replace("#<font></font>#si "," ",$content)

        Kommentar


        • #5
          Leute schaut doch mal was ich da als Beispiel geschrieben habe:
          <font>hier steht Text!!!</font>

          Nun sollen die Font-Tags entfernt werden wenn diese wie hier im Beispiel leer sind, also nicht z.B. <font color=#123456> enthalten.
          Und bitte auch meinen ersten Thread beachten, da steht nämlich drin, dass es funktioniert wenn die Tags hinterinander geöffnet und dann auch wieder geschlossen werden. Mein Problem ist, dass die Tags nicht erkannt werden, wenn sie verschachtelt geöffnet und geschlossen werden.
          Also:
          <font>hier steht <font>Text</font>!!!</font>

          Merci

          Kommentar


          • #6
            @admin, warum kann ich meinen eigenen beitrag nicht editieren?????

            @andi, da fehlte ein zeichen:
            $content = preg_replace("#<font>|</font>#si "," ",$content)

            so sillten pauschal alle <font> und </font> entfernt werden, solange nicht fonat color="" etc. drinsteht ...
            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar


            • #7
              Ja aber das ist es ja gerade, er würde so auch </font> löschen obwohl es zu einem <font color=#123456> gehört. Also mit "<font>|</font>" kommt man da nicht weiter. Darum habe ich ja auch schon "#<font>(.*)</font>#isU" benutzt um sicher zu gehen. Aber nun habe ich das Problem, wie zuvor beschrieben, dass das bei Verschachtelungen (s.o.) nicht funktioniert - was mir aber nicht einleuchtet.

              Grüße,
              Andi

              Kommentar


              • #8
                ach so, sorry.

                hast du das tut gelesen? da steht auch der modifier drin, den du brauchst, damit es sich immer auf den kleinsten bereich ausübt.

                --> die umschließenden Tags werden allerdings ignoriert.

                Kommentar


                • #9
                  Muß ich mal suchen. Danke.

                  Kommentar

                  Lädt...
                  X