On Thu, Oct 23, 2008 at 2:22 AM, Ashley Sheridan <ash@xxxxxxxxxxxxxxxxxxxx> wrote: > On Wed, 2008-10-22 at 22:30 -0400, Andrew Ballard wrote: >> On Wed, Oct 22, 2008 at 10:15 PM, Jason Todd Slack-Moehrle >> <mailinglists@xxxxxxxxxxxxxxx> wrote: >> > On Oct 22, 2008, at 6:58 PM, Stut wrote: >> > >> >> On 23 Oct 2008, at 02:41, Jason Todd Slack-Moehrle wrote: >> >>> >> >>> Actually i am ending the row headers with a chr(10); // LINE FEED >> >> >> >> From the code you included in your original post... >> >> >> >>> echo "/n"; >> >> >> >> >> >> There was no mention of chr(10). >> >> >> >> Outputting data in CSV format is not hard. Simply echo the header row if necessary, followed by "\n". Then output each line taking care to put string values in quotes which means you also need to escape quotes in the data. After each line echo "\n". That's really all there is to it. >> >> >> >> If you're still having problems I suggest you post the exact code you're using, anything else just makes it harder for us to provide effective help. >> >> >> >> -Stut >> >> >> >>> On Oct 22, 2008, at 5:12 PM, Stut wrote: >> >>> >> >>>> On 23 Oct 2008, at 00:59, Jason Todd Slack-Moehrle wrote: >> >>>>> >> >>>>> After I right out the column headers do I have to put a '/n' to have it start a new line in the CSV file? I think I do. >> >>>> >> >>>> A new line is \n not /n, and it must be in double quotes (") not single ('). >> >> >> > >> > Oh, I am not putting quotes around each field that i get from MySQL. There are no quotes in the data so that is good. >> > >> > Sorry I put "/n" and I meant to put chr(10). >> > >> > -Jason >> > >> >> Jason, one of the points that Stut was trying to explain is that "\n" >> and chr(10) are the same thing. They are just two different ways to >> refer to a newline (line feed) character. Most of us probably use "\n" >> rather than chr(10) in PHP, though. So, the following two lines are >> equivalent: >> >> <?php >> echo "Item1, Item2, Item3" . chr(10); >> >> // Note this uses double quotes. >> echo "Item1, Item2, Item3\n"; >> >> // It won't be the same at all if you use single quotes >> echo 'Item1, Item2, Item3\n'; >> >> ?> >> >> At any rate, you are correct that you need a line feed/newline >> character at the end of every row in CSV including the header row. >> >> Andrew >> > A line feed and \n are not the same thing at all. Different operating > systems implemented a different method of line endings depending on what > they thought best, either a carriage return or line feed or both. a \n > is meant to be an OS agnostic way of implementing this in the various > programming languages, outputting something that any OS can understand > in the intended way. > > > Ash > www.ashleysheridan.co.uk As I understood, \n was strictly a line feed (ASCII character 10), not an "OS agnostic" end-of-line terminator. It happens to be the line terminator for *nix. Windows uses the combined carriage return and line feed characters (ASCII characters 13 and 10) which are represented by \r\n in PHP, while Mac used only the the carriage return. There is a PHP constant PHP_EOL that I'm pretty sure is supposed to represent the line terminator defined on the operating system of the computer executing the script, but I don't think it is truly "agnostic" either. At least, if you have a text file saved in Windows and split it on a Linux machine based on PHP_EOL, I believe all of your array values will have a carriage return character hanging on the end of them. Am I mistaken? Andrew -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php