Zeilenumbruch bei Textdatei geht nicht

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

  • Zeilenumbruch bei Textdatei geht nicht

    Hallo!

    Ich habe ein kleines Problem mit meinem Script.

    Das ganze soll so funktionieren, dass der Anwender in einem Formularfeld ein Wort eingibt, welches dann in einer externen Textdatei gespeichert wird. Nach jedem Wort soll eine neue Zeile begonnen werden. Das die txt-datei dann folgendermaßen aussieht:

    Wort1
    Wort2
    Wort3


    Prinzipiell funktioniert es auch...bis auf den Zeilenumbruch!
    Meine Ausgabe in der Textdatei sieht so aus:

    Wort1Wort2Wort3

    PHP-Code:
    <form action="seite.php" method="post">
    <p> Bitte geben Sie ein Wort ein: <input type="text" name="wort"/></p>
    <p><input type="submit" /></p>
    </form> 
      <?php
      $datei 
    fopen("liste.txt""a+");
    $eintrag $_POST['wort'];
    fwrite($datei"$eintrag\n");
    fclose($datei);
    ?>
    Es wird zwar ein Zeichen (ein kleines Rechteck) in der Textdatei eingefügt, trotzdem steht alles in einer Zeile! Das ist doof, denn ich wollte nachher die Einträge der Textdatei zeilenweise in ein Array wieder einlesen!

    Und zwar so:

    PHP-Code:
    //Hier wird die Textdatei geöffnet und der Inhalt zeilenweise ausgelesen
        
    while (!feof($datei)) { 
            
    $zeile[] = fgets($datei4096); // File zeilenweise in einen Array einlesen
        


    Wo liegt denn mein Fehler? Ich komm einfach nicht drauf.

  • #2
    Schon so probiert ?
    PHP-Code:
    <?php
    $datei 
    fopen("liste.txt""a+");
    $eintrag $_POST['wort'];
    fwrite($datei"$eintrag\r\n");
    fclose($datei);
    ?>
    Also \r\n statt nur \n

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      vor der ausgabe in html musst du nl2br() benutzen. ein zeilenumbruch in html stellt man mit <br /> dar!

      \n siehst du nur unter der ansicht vom quelltext.

      Es wird zwar ein Zeichen (ein kleines Rechteck) in der Textdatei eingefügt
      das würde sich ändern, wenn du einen windowszeilenumbruch benutzen würdest \r\n oder einen vernünftigen editor - ändert aber nichts an der tatsache, dass ein textzeilenumbruch kein html-umbruch ist.

      Kommentar


      • #4
        Meine Ausgabe in der Textdatei sieht so aus:

        Wort1Wort2Wort3
        @Max
        Wegen dieser Aussage bin ich davon ausgegangen, dass er die Datei in Notepad & Co angeschaut hat und nicht im Browser...

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Ehm Maxxon, könntest du bitte posten ob es jetzt funktioniert? Denn mich interessiert das Thema auch schon ein wenig, aber ich bin zu faul das eben selbst auszuprobieren

          mfg nOe
          "I am what I am and I do what I can..."
          Meine HP -- Mein GPG-Key
          Meine Projekte: WebStorage 2.0 -- easyAJAX-Chat 2.2.0 (beta)

          Kommentar


          • #6
            Hallo nochmal!

            Also erstmal an jahlives:
            Es stimmt, du hast recht. Es ging um die Ansicht in einem Texteditor wie Notepad. Nicht um HTML.

            Ich denke, wenn ich nicht wüßte, dass <br> einen Zeilenumbruch im Browser darstellt, dann sollte ich erst nochmal die HTML-Schulbank drücken anstatt mit PHP rumzucoden.

            Zur Problemlösung:

            PHP-Code:
            fwrite($datei"$eintrag\r\n"); 
            Das funktioniert! Vielen Dank!

            Kommentar

            Lädt...
            X