• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 50521
  • Last Modified:

Newline character

Hi Experts

I'm exporting a report from my database in various file formats. One of them is CSV. I'm using:

header("Content-type: application/notepad");
header("Content-Disposition: attachment;filename="Export.txt");

to get Explorer to ask if the file should be saved to disk, or opened from the location. Finally, to the question: I'm using "\n" for the linebreaks, but they aren't appearing when I open the saved file in Notepad, it just gives me reams of continuous text. However, if I print the file, or open it in Excel, then I get the correctly formatted data. It's just notepad that doesn't show the linebreak correctly. Any ideas on what character I should be using?

Thanks

ED
0
Edeldragon
Asked:
Edeldragon
  • 3
  • 2
  • 2
  • +3
1 Solution
 
CrYpTiC_MauleRCommented:
use \r\n
0
 
Marcus BointonCommented:
DOS/Windows line breaks are not just a single character. You should be using "\r\n" as the line break for Windows (also known as CRLF, short for carriage return, line feed). Unix-like systems use "\n", MacOS 9 uses "\r", OS X can cope with either "\n" or "\r".
It's fairly likley that Excel is clever enough to convert/accept line breaks in vaying formats, but notepad probably doesn't - it isn't exactly the height of text-processing pile.
0
 
ldbkuttyCommented:
might be helpful....its not simply writing into a notepad with newline, but something interesting you can learn from...

http://www.karakas-online.de/EN-Book/include-plain-text-file-in-module.html
http://www.php.net/manual/en/function.nl2br.php

All the Best.
0
Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

 
BrianPap22Commented:
Unix uses \n to signify a newline.  Mac uses \r (carriage return), and for some bizarre reason, Windows uses both... so you would need to do "\r\n"

If you just want to view the data, then if you open it in Wordpad instead of Notepad it'll honor the lone \n as being a newline (if you edit it in Notepad or Wordpad, it will add \r\n to any newlines you make with it.
0
 
BrianPap22Commented:
you people... what are you all doing awake? go to bed so i can get points. sheesh!
0
 
Marcus BointonCommented:
Ah, well, I'm kind of cheating being on the other side of the world from you! It's 11:45am in London...
0
 
EdeldragonAuthor Commented:
3 answers within 4 minutes! Not too shabby. Thanks. I had to give it to Cryptic Mauler because his was the first correct one submitted, although I suspect that Squinky and BrianPap22 only lost out because they were writing me long answers!

Thanks again.
0
 
CrYpTiC_MauleRCommented:
mmmm timing =oP, all I did was get right down to answering the question : Any ideas on what character I should be using?
But tis was a close race still =oPm Thanks!! =o)
0
 
BrianPap22Commented:
Hey, give a man a fish, feed him for a day. Teach a man that he can either use \r\n (CRLF) or just view the file in Wordpad instead of Notepad, and now everyone is happy.
0
 
jv2222Commented:
If you are using a PC and you would like the file to be streamed DIRECTLY into excel (i.e. automatically open Excel) you can do the following:

<?php

$content = <<<END
name,age,sex
bob,22,male
sue,24,female
END;

            header("Content-Length: ".strlen($content));
            header("Content-Disposition: attachment; filename=your_file.xls");
            header("Content-Type: application/octet-stream");
            header("Content-Transfer-Encoding: binary");

            print $content;

?>

Note: You can also use \t instead of commas (,)

Cheers,
Justin
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
  • 2
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now