Chriz: www.laughter-online.de - Ärger mit nl2br

Guten Morgen :)

Unsere Band-Page brauche mal einen neuen Anstrich. Da ich nicht wieder mit Flash arbeiten wollte, habe ich mal einen anderen (nicht ganz typischen) Weg für die Seite gewählt.

Soweit läuft alles (noch ein paar Texte und Bilder müssen geändert werden), aber mich regt momentan der Unterschied zwischen IE und Mozilla auf.

Die Texte werden via nl2br HTML tauglich gemacht. Der IE stellt aber doppelte <br /> nicht richtig dar. Kann mir jemand sagen, woran das liegt, bzw. wie man es so hinbekommt, dass es funktioniert?!?

Beste Grüße,

Chriz.

  1. Hi, nochmals.

    Nach kurzer Denkpause habe ich die betreffende Ausgabe mit einem str_replace() versehen.

    str_replace("<br />  <br />","<br />&nbsp;<br />",$text)

    Klappt einwandfrei.

    Gruß,
    Chriz.

    1. Hallo Chriz,

      str_replace("<br />  <br />","<br />&nbsp;<br />",$text)

      Klappt einwandfrei.

      Aber da schüttelts einen ja, dass du Frontpage-Methoden nachbaust. Bitte mach dich mit Margin, Padding und Line-Height vertraut.

      Grüße aus Barsinghausen,
      Fabian

      --
      "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>
      1. Aber da schüttelts einen ja, dass du Frontpage-Methoden nachbaust. Bitte mach dich mit Margin, Padding und Line-Height vertraut.

        Hi, Fabian.
        Mit den Sachen bin ich vertraut, aber es hilft nichts, wenn der IE diese Leerzeile ohne "echten" Inhalt nicht darstellt.
        Somit sah ich in obigem Trick den einzigen Ausweg.

        Gruß,
        Chriz

        1. Tag Chriz.

          es hilft nichts, wenn der IE diese Leerzeile ohne "echten" Inhalt nicht darstellt.

          Zu welchem Zweck sollte eine Leerzeile überhaupt dargestellt werden? Kein Inhalt, also auch keine Darstellung, oder?

          Siechfred

          1. Hi, Siechfred.

            Zu welchem Zweck sollte eine Leerzeile überhaupt dargestellt werden? Kein Inhalt, also auch keine Darstellung, oder?

            Öhm, vielleicht für Absätze?

            So wie hier, wenn man eine Leerzeile einfügt, um damit Absätze zu markieren.

            Gruß,
            Chriz

            1. Zu welchem Zweck sollte eine Leerzeile überhaupt dargestellt werden? Kein Inhalt, also auch keine Darstellung, oder?
              Öhm, vielleicht für Absätze?

              Dafür ist das P-Element gedacht. Mal so ungetestet dahingerotzt:

              $zeilen = preg_split("/[\s]+/", $derText);  
              $anz = count($zeilen);  
              for ($i=0; $i<$anz; $i++) {  
                echo "<p>" . $zeilen[$i] . "</p>\n";  
              }
              

              Das macht dir aus einer Usereingabe mit diversen Newlines ein Zeilen-Array (egal, wieviele Newlines eingegeben wurden), und gibt das Ganze dann in P-Elemente verpackt aus.

              Siechfred

            2. Hi,

              Öhm, vielleicht für Absätze?

              Von dem Mißbrauch hierfür (ja, OK, mache ich auch schon mal ;-)) mal abgesehen:

              Auch der IE faßt multiple BRs nicht zu einem BR zusammen. Oder ist dieses HTML-konforme Verhalten mit einem Sicherheitsbug^h^h^hupdate abgeschafft worden? ;-)

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. Der IE stellt aber doppelte <br /> nicht richtig dar.

    Kann ich mir eigentlich nicht vorstellen...
    Wie stellt er es denn dar?

    Kann mir jemand sagen, woran das liegt, bzw. wie man es so hinbekommt, dass es funktioniert?!?

    Nee, glaub nicht, daß dir da jemand helfen kann, so wie du das Problem beschreibst...
    Was passiert denn da jetzt? Werden aus zwei Zeilenumbrüchen zwei <br/> oder nicht?

    Gruß, rob

    1. Hi, rob.

      Der Zeilenumsprung wurde als

      "<br />  <br />"

      geschrieben. Mit dem str_replace("<br />  <br />","<br />&nbsp;<br />",$text) akzeptiert der IE die Leerzeilen auch.

      Gruß,
      Chriz.