Check out http://www.wotsit.org for the exact csv specifications but here is 
a snippit that works for me:

function csv($value) {
        if (strstr($value, ",") || strstr($value, "\n") || strstr($value, "\r")) {
                return "\"" . str_replace("\"", "\"\"", $value) . "\"";
        } else {
                return $value;
        }
}

Run this function on each value then implode them with a comma and put a \n 
at the end.

Cheers,

Owen Prime
http://www.noggin.com.au


Ivo Stoykov wrote:

> Hi
> 
> I have following problem.
> 
> Some data retreived from mysql db I need to send to the user as a *.csv
> file. Usually I separate fields (usually double quoted) with comma (,) or
> semicolomn (;) and the records with cr/lf (Windows)
> It works fin until I do not have cr/lf in any of the fields.
> 
> Unfortunately the last field is TEXT type and may have more that one cr/lf
> inside (as data). When this is the case the *,csv file cannot be open
> correctly in Excel. If there are cr/lf in any field it is split in Excel
> as a separate row and the record structure is broken.\
> 
> Any idea how could solve this? Thank you
> 
> Ivo


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to