Check out 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.


Owen Prime

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 (
To unsubscribe, visit:

Reply via email to