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.
@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
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
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:
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 😉
13113500cookie-checkfile_put_contents und eine Zeilenumbruchhilfeyes