file_put_contents und eine Zeilenumbruchhilfe

Lesezeit: 2 Minuten

Ich habe eine Datei, in die ich schreibe, und ich kann file_put_contents nicht dazu bringen, den nächsten Eintrag in einer neuen Zeile anzuhängen, selbst nach einem Zeilenumbruchzeichen. Was vermisse ich? Ich bin auf einem Windows-Rechner.

$file="test.txt";
$message = "test\n\n";
file_put_contents($file, $message, FILE_APPEND);

Versuchen

$file="test.txt";
$message = "test".PHP_EOL;
file_put_contents($file, $message, FILE_APPEND);

oder

$file="test.txt";
$message = "test\r\n";
file_put_contents($file, $message, FILE_APPEND);

  • @Gordon -1 für die Verwendung PHP_EOL! Diese Konstante ist nur sinnvoll, wenn Sie eine Datei für interne Zwecke verwenden und wird massiv überstrapaziert. In den meisten Fällen UNIX-freundlich \n ist eine bessere Wahl.

    – RoboRobok

    28. Mai 2018 um 20:26 Uhr

  • @RoboRobok Frage war ungefähr \n funktioniert nicht auf einem Windows-Rechner, PHP_EOL oder \r\n scheint hier sehr passend. hier geht es nicht um “die meisten Fälle”

    – Matthias

    27. Juni 2018 um 17:47 Uhr

Für PHP_EOL sehen Sie Ihre neue Zeile möglicherweise nicht, weil Sie das Ende der Zeile definieren, nachdem Sie Ihre neue Zeile geschrieben haben. Daher wird die neue Zeile erst erstellt, nachdem der neue Inhalt in die letzte Zeile Ihrer Textdatei eingefügt wurde.

es sollte so lauten:

$file="test.txt";
$message="some message that should appear on the last line of test.txt";
file_put_contents($file, PHP_EOL . $message, FILE_APPEND);

  • Diese Antwort braucht viel mehr Liebe. Dies hat mein Problem behoben.

    – Ich mag Schildkröten

    18. Juli 2013 um 20:49 Uhr

Benutzer-Avatar
bcosca

Wie sehen Sie den Inhalt von $file? Wenn Sie Notepad verwenden, können Sie es nicht sehen \n.

  • Ja, im Notizblock. Ok, also ist das dann mein Problem? Kann ich etwas tun, um die Unterbrechungen im Notizblock anzuzeigen?

    – Jim

    24. Februar 2010 um 10:33 Uhr

  • Ich benutze Notepad2. Download unter www.flos-freeware.ch

    – bcosca

    24. Februar 2010 um 10:36 Uhr

  • Volker, danke. Auch an dich RockJock. Das hat funktioniert. Ich habe \n\r gemacht, was meiner Meinung nach einen Unterschied macht.

    – Jim

    24. Februar 2010 um 10:37 Uhr

  • Danke rockjock. gehe jetzt dorthin.

    – Jim

    24. Februar 2010 um 10:38 Uhr

Geben Sie einfach eine normale neue Zeile ein und es funktioniert

$file="test.txt";
$message = "test
";
file_put_contents($file, $message, FILE_APPEND);

Für diejenigen, die das zweite Argument als Array und nicht als String an file_put_contents übergeben, funktioniert es auch, PHP_EOL als letztes Array-Element zu setzen:

file_put_contents($file, array('value 1', 'value 2', PHP_EOL), FILE_APPEND);

Benutzer-Avatar
AP.

Lesen Sie zuerst etwas über die Neue Zeile Charakter. Es ist für jedes Betriebssystem anders … Es gibt LF, CR, CR+LF… Guck mal hier

Unter Windows benötigen Sie CR+LF (\r\n) wie Mathieu schon sagte. Nur unter Linux LF wird gebraucht (\n)

Aber sicher verwenden PHP_EOL.

Bei der Verwendung von Dateien müssten Sie wahrscheinlich mehr über Pfad- und Verzeichnistrennzeichen wissen. Sie sind auch anders. Verwenden DIRECTORY_SEPARATOR statt Schrägstrich oder Backslash 😉

1311350cookie-checkfile_put_contents und eine Zeilenumbruchhilfe

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy