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