19

I am writing a TXT file using PHP. I want to insert actual line breaks into the TXT file wherever necessary. I have tried all combinations of \n \r \r\n \n\r ... but these are not causing any linebreaks to appear - in most cases, I am seeing the text "\n" appear in the TXT file, with no linebreak.

I have also tried chr(13).

Any other ideas would be appreciated.

1
  • 3
    some source would be helpfull Commented Oct 4, 2010 at 16:14

5 Answers 5

30

For "\n" to work, you need to use double quotes, not '\n'.

But you should use the constant PHP_EOL instead, so that it adapts automatically to the OS ("\n", "\r" or "\r\n").

file_put_contents('file.txt', 'Bla' . PHP_EOL . 'Bla');
Sign up to request clarification or add additional context in comments.

3 Comments

I could not find PHP_EOL on php.net, where can i learn more about what this does? Thanks!
Please note that PHP_EOL is the default line ending of the server. It's useful unless you're generating a file for download.
25

Sounds to me like you might be using single quotes, i.e. '\n' rather than "\n".

If you wanted to continue with a single quotes bias (as you should!), two options:

file_put_contents('/path/to/file.txt', 'Hello friend!
This will appear on a new line.
As will this');

// or

file_put_contents('/path/to/file.txt', 'Hello friend!'."\n".'This will appear on a new line.'."\n".'As will this');

Comments

3

\r\n in a windows server \n in linux Make sure you upload the file as ASCII.

Comments

1

You must write \n in a double-quoted string (in single-quoted strings no parsing takes place):

"foo\r\nbar"

Further reference:

http://es2.php.net/manual/en/language.types.string.php

Comments

1

you could also use chr(10) which is line break.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.