Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeilenumbruch mit "\n"

Einklappen

Neue Werbung 2019

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

  • Zeilenumbruch mit "\n"

    Moin Moin!

    Ich habe heute morgen einen Datensatz erstellt, den ich dann in eine CSV Datei abgespeichert habe.
    Am Ende dieses Datensatzes habe ich für einen Zeilenumbruch in der CSV-Datei folgendes angehängt:

    $datensatz.="\n";

    Als ich darauf mein Projekt (Anmeldeformular) ausprobierte, waren alle eingegebenen Daten in einer Zeile (in Excel in einer Zeile aneinander
    gereiht.

    Kann mir jemand helfen, wie ich einen Zeilenumbruch richtig erstelle?


  • #2
    \n funktioniert nur unter Linux oder Unix. In Windows musst du ich glaube \r\n verwenden.

    Kommentar


    • #3
      Ich habe es sofort ausprobiert.

      Es funktioniert. Vielén Dank für diesen Tipp

      Kommentar


      • #4
        Uralt aber grabe ich mal wieder aus

        Wenn im meinem CSV aber steht:

        Code:
        Dies ist mein Text und dieser Text\r\nhat einen Zeilenumbruch darin.;
        Dies ist ein Text, der in eine andere Spalte soll.\r\nAuch hier hat es einen Zeilenumbruch.;
        Wenn ich das CSV nun als in Excel importiere, steht der Text eins zu eins so im Feld. Die \r\n werden nicht als Zeilenumbruch interpretiert. Was mach ich hier, dass dem so ist?
        Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
        Mark Twain

        Kommentar


        • #5
          \r (carriage return) und \n (new line feed) sind genau wie \t (tab) etc. nicht-druckbare Zeichen des Ascii Satzes. Sie entsprechen also genau einem Zeichen, z.B. hexadezimal 12 für \n, das aber bspw. in php eben nicht in Fließtext darstellbar ist. Deshalb gibt es die Konvention, die genannten Zeichen mit einem führenden Escapezeichen, dem Backslash, als Sonderzeichen zu interpretieren. In php geschieht das innerhalb von doppelten Hochkommata, aber auch z.B. bei Angaben wie dieser:
          PHP-Code:
          <?
          $text = 'ein wort
          und der rest';
          In deinem Falle hast Du aber einfach zwei einzelne Zeichen, eben das \ und das n. Du könntest str_replace () nutzen, um die Strings in echte Sequenzen umzusetzen. Dabei kannst Du Dir eben das unterschiedliche Verhalten für verschiedene Stringbegrenzer zunutze machen
          PHP-Code:
          <?
          $aReplace = array (
                                      '\r' => "\r" ,
                                      '\n' => "\n" ,
                                      '\t' => "\t" 
                                      );
          $sText = str_replace (
                                         array_keys ($aReplace) , 
                                         array_values ($aReplace) ,
                                         $sText
                                         );
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar

          Lädt...
          X