Conrad: nl2br problem

hi,

ich trage einen text aus einem textarea mittels nl2br in eine datenbank ein.

wenn ich jetzt diesen text wieder in ein textarea "schmeiße", dann sind die <br /> sichtbar.

wie kann ich das aber verhindern, das die <br /> angezeigt werden, jedoch die reinen zeilenumbrüche sollen erhalten bleiben?

Beispiel:

schritt 1:

dies ist ein

text

eintrag in der datenbank:

dies ist ein<br />
<br />
text

jetzt lasse ich es mir wieder in einem textarea anzeigen und es soll statt:

dies ist ein<br />
<br />
text

wieder folgendes dastehen:

dies ist ein

text

danke

  1. Hallo.

    Wie wäre es mit einer kleinen Funktion wie bspw. :

    <?
    function br2nl( $data ) {
       return preg_replace( '!<br.*>!iU', "\n", $data );
    }
    ?>

    Schönen Gruß
    Tobi

    1. Hi Tobi,

      <?
      function br2nl( $data ) {
         return preg_replace( '!<br.*>!iU', "\n", $data );
      }
      ?>

      Warum so kompliziert, wenn es auch enfach geht?

      Was du willst ist:
      1. Text in Textarea schreiben
      2. Text aus Textarea ub DB speichern
      3. Text aus DB wieder in Textarea

      Warum machst du dir überhaupt die Mühe die \n in <br /> umzuwandeln?
      Lass sie einfach wie sie sind, dann klappts bei der Ausgabe von alleine.

      Und wenn du irgendwann mal das nicht in einer Textarea ausgeben willst,
      dann machst du nl2br() bei der Ausgabe! Das ist eh viel besser, da so eine
      Abwärtskompatiblität gewährt ist.

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
      Zufällige Hinweise:
      ------------------------
      Fuer die Neulinge: Auf viele Fragen findet man eine
      Antwort im </archiv/>, das man auch durchsuchen kann
      http://suche.de.selfhtml.org/
      1. hi,

        mache jetzt folgendes und es fkt. nicht:

        function br2nl($nachricht)
        {
           return preg_replace('!<br.*>!iU',"\n",$nachricht);
        }

        $test = "hallo <br /><br /> oweijf f<br />";

        br2nl($test);
        echo($nachricht);

        jetzt gibt er mir nichts aus

        1. hi,

          function br2nl($nachricht)
          {
             return preg_replace('!<br.*>!iU',"\n",$nachricht);
          }

          $test = "hallo <br /><br /> oweijf f<br />";

          br2nl($test);

          warum wirfst du den rückgabewert der funktion einfach weg?

          echo($nachricht);

          wo bitte hast du $nachricht definiert?

          du solltest dich wirklich noch mal mit den grundlagen im umgang mit funktionen beschäftigen, denn offenbar hast du das thema bisher stark vernachlässigt.

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        2. Moin!

          function br2nl($str)
          {
              $str=str_replace("<br />\n", "\n", $str);
              return $str;
          }

          nl2br mach aus Zeilenumbüchen ("\n") ein br + Zeilenumbruch, also: "<br />\n";
          Das musst Du suchen und ersetzen. Da reicht aber str_replace().

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
  2. Hi,

    ich trage einen text aus einem textarea mittels nl2br in eine datenbank ein.

    speichere die Daten in ihrer Rohform. Konvertiere sie _erst_ bei Bedarf.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes