2016-08-09 6 views
2

Wie könnte man eine neue Zeile in eine Datei in PHP schreiben, ohne alle anderen Inhalte der Datei zu löschen? DieseEine neue schreiben und eine Datei in PHP anhängen, ohne Inhalt zu löschen

<?php 
if(isset($_POST['songName'])){ 

     $newLine = "\n"; 
     $songName = $_POST['songName']; 
     $filename = fopen('song_name.txt', "wb"); 
     fwrite($filename, $songName.$newLine); 
     fclose($filename); 
    }; 

?> 

ist, was die Datei sieht aus wie Current view

Dies ist, was sollte wie Ideal View

+0

Gerade jetzt Datei hinzufügen der Inhalt der Datei sieht folgendermaßen aus 123456789 Es sollte so aussehen 123 456 789 Mit jeder Gruppe von 3 Zahlen in einer neuen Zeile der Datei –

+0

versuchen, PHP_EOL anstelle von "\ n" – coder

+0

Bitte fügen th Die Details zu Ihrer Antwort, innerhalb eines Codeblocks, damit wir sehen können, wo die Zeilenumbrüche sind und wo sie sein sollten. Dieser Kommentar teilt uns auch nicht mit, was in der Datei enthalten war und was Sie anhängen möchten. – BeetleJuice

Antwort

2

einfach:

file_put_contents($filename,$songName.$newLine,FILE_APPEND); 

Kümmert Öffnung, schriftlich und Schließen der Datei. Es wird sogar die Datei bei Bedarf erstellen! (see docs)

Wenn Ihre neuen Zeilen nicht funktionieren, ist das Problem mit Ihrer $newLine Variable, nicht die Datei Append-Operationen. Eine der folgenden arbeiten:

$newLine = PHP_EOL; <<or>> $newLine = "\r\n"; 
+0

Dies fügt keine neue Zeile zu der Datei, es hängt nur an das Ende der aktuellen Zeile –

+0

@JohnSmith Alle Datei anhängen Operationen, einschließlich der anderen Lösung, mach das selbe. Es hängt alles an, was Sie angeben. Wenn Sie eine neue Zeile wünschen, beginnen Sie mit einem neuen Zeilenzeichen :-). ZB: append '$ newLine. $ SongName. $ NewLine' – BeetleJuice

+0

Ich habe genau das gemacht, und es hatte keine Wirkung. –

4

Sie haben Blick ist es festgelegt für das Schreiben mit der Option w, die die Daten löscht.

Sie müssen „anhängen“, um die Daten wie folgt:

$filename = fopen('song_name.txt', "a");

Eine vollständige Erklärung dessen, was alle Optionen zu tun, lesen here.

+0

Wenn auf "a" gesetzt, fügt es keine neue Zeile zu der Datei hinzu, es fügt nur zum Ende hinzu. –

+1

ja das ist wie es funktioniert –

+0

Das ist nicht was ich versuche zu erreichen. Ich versuche, in eine neue Zeile in der Datei zu schreiben, ohne die aktuellen Daten der Datei zu löschen –

2

Um eine neue Zeile in eine Datei hinzufügen, und fügen Sie sie wie folgt vor

$songName = $_POST['songName']; 
     $filename = fopen('song_name.txt', "a+"); 
     fwrite($filename, $songName.PHP_EOL); 
     fclose($filename); 

PHP_EOL wird eine neue Zeile in die

Verwandte Themen