On Thu, Oct 23, 2008 at 2:22 AM, Ashley Sheridan
<[EMAIL PROTECTED]> 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
>> <[EMAIL PROTECTED]> 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

Reply via email to