Joris N: Zeilenbrüche in txt-Dateien unterbinden

Hallo Forumler

Bei mir können User in einem Formular eine Textarea ausfüllen und der Inhalt wird dann in einer Text Datei gespeichert.

Dieser Text sollte dann etwa so, wie er eingegeben wurde, wieder ausgegeben werden.
Wenn ich str_replace verwende, ist das Ergebnis:
"Zei
<br>len
<br>schaltung" und es wird als:"Zei len schaltung" ausgegeben.

Eigentlich habe ich es mir so vorgestellt:
In der Datei: "Zei<br>len<br>schaltung"
und auf der Page: "Zei
len
schaltung"

Könnt ihr mir helfen??'

Danke im vorraus
Joris

  1. Hallo,
    also du ersetzt \n durch <br> ?
    Ich glaube bei windows muss du noch die \r entfernen, denn die sind für Zeilenumbrüche zuständig.

    P.S. Dieses Forum hat auch eine Suchfunktion ;)

    MFG
    Andavos

    --
    http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  2. Hallo Joris,

    Könnt ihr mir helfen??

    Ja

    $text = ereg_replace("\n","<br />",$text);

    Hierbei wird die Variable $text durchsucht und eine Zeilenschaltung durch ein <br> ersetzt.

    Bis denne

    Botix

    1. Hallo Botix

      Vielen Dank für deine Hilfe.

      Das mit dem br tag klappt jetzt.

      $text lautet jetzt aber "in<br>
      halt"

      und wenn ich mit

      fputs($datei, $text);

      ind die Datei schreibe, lautet der Inhalt auch so (was auch normal ist). Was muss ich aber tun, dass er "in<br>halt" (ohne Zeilenbrüche!) lautet??

      nochmals Danke

      jo

      1. hi,

        Was muss ich aber tun, dass er "in<br>halt" (ohne Zeilenbrüche!) lautet??

        den hinweis beachten, den dir Andavos bereits eine dreiviertelstunde vor dieser rückfrage gegeben hatte.

        gruss,
        wahsaga

        1. hi

          den hinweis beachten, den dir Andavos bereits eine dreiviertelstunde vor dieser rückfrage gegeben hatte.

          habe ich schon

          Offenbar bin ich unfähig, meine Frage zu formulieren.

          Hier den Code:
          $text=
          "Das
          ist ein
          Beispiel" // Mit den Umbrüchen

          $text = str_replace("\r","<br>",$text); // diese Funktion erfüllt ihren Zweck

          $datei = fopen ("datei.inc", w) // öffnen

          fputs($datei, "$text \r\n"); // Da muss ich was ändern

          fclose($datei);

          Wenn ich den Inhalt dieser Datei auslese lautet
          er:
          "Das<br>
          ist ein<br>
          Beispiel"

          Das Problem ist, dass alles auf eine Zeile muss.
          Etwa so: "Das<br>ist ein<br>Beispiel".

          Joris

          1. hi,

            $text = str_replace("\r","<br>",$text); // diese Funktion erfüllt ihren Zweck

            offenbar nicht, sonst würdet du ja anschlissend nicht behaupten,

            Wenn ich den Inhalt dieser Datei auslese lautet
            er:
            "Das<br>
            ist ein<br>
            Beispiel"

            da je nach system die zeilenumbrüche aus dem formular mit \n, \r oder \r\n geliefert werden, würde ich folgendes empfehlen:
            per nl2br() <br /> zu den zeilenumbrüchen hinzufügen.
            anschliessend \n und \r einzeln per str_replace durch leerstrings ersetzen.
            dann ggf. noch <br /> durch <br> ersetzen.

            und anschliessend in die datei schreiben.

            fputs($datei, "$text \r\n"); // Da muss ich was ändern

            hier das \r\n ggf. auch weglassen, wenn du am ende des textes keinen zeilenumbruch haben willst.

            gruss,
            wahsaga