PHP New Line will not work

Hi I am trying to create some code that first reads the existing contents of the file in and then adds the new line of code on a new line but the code i am using just adds it on the new text on to the already existing line instead of the new line…

Here is the code i am using:


$id = $_GET['id'];

$userfile = "user1.txt";
$fo = fopen($userfile, 'r') or die("can't open favourites file");
$currentdata = fread($fo, filesize($userfile));
$fw = fopen($userfile, 'w') or die("can't open favourites file");
$currentprocessed = "$currentdata\n";
fwrite($fw, $currentprocessed);
fwrite($fw, $id);

I have tried a whole range of different ideas but nothing has worked, any help would be appreciated.

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

Line endings per OS

Unix / Linux

DOS / Windows

\r and \n\r

The value of PHP_EOL constant depends on the platform php is running on.
It doesn’t detect the line-endings in the current file or anything magic.

Solution 2

Instead of appending \n, concatenate the constant PHP_EOL which is always the correct newline character for the current platform.

It might also be an issue with the program you’re using to open the text file with. For instance, Notepad on Windows is incapable of understanding unix style newlines.

Solution 3

I ran into this same issue. What application are you using to read the file? I found that for some reason Notepad (my default for .txt files) didn’t recognize the “\n\r” escape characters. I opened my .txt file that I was writing to using Notepad++, Atom (my text editor of choice), or in a browser and they all showed the line breaks just fine.

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply