PHP generating csv not sending correct new line feeds

Posted by sjw on Stack Overflow See other posts from Stack Overflow or by sjw
Published on 2010-04-30T06:34:16Z Indexed on 2010/04/30 6:37 UTC
Read the original article Hit count: 194

Filed under:
|
|
|

I have a script that generates a csv file using the following code:

header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="'.date("Ymdhis").'.csv"');
print $content;

The $content variable simply contains lines with fields separated by commas and then finalised with ."\n"; to generate a new line.

When I open the file in csv it looks fine however, when I try to use the file to import into an external program (MYOB) it does not recognise the End Of Line (\n) character and assumes one long line of text.

When I view the contents of the file in notepad, the end of line character (\n) is a small rectangle box which looks like the character code 0x7F.

If I open the file and re-save it in excel, it removes this character and replaces it with a proper end of line character and I can import the file.

What character do I need to be generating in PHP so that notepad recognises it as a valid End Of Line character? (\n) obviously doesn't do the job.

© Stack Overflow or respective owner

Related posts about php

Related posts about csv