Custom fputcsv
oliverskawronek opened this issue · 1 comments
oliverskawronek commented
Thanks for this library!
I took a look into CsvObjectFile and saw that you are utilize the PHP's own fputcsv
by writing into a temp stream and catch the written line.
It would be nice, if you could write your own fputcsv
that would be more customizable. Some features that could be implemented with that are:
- force enclosing fields. See https://stackoverflow.com/questions/2489553/forcing-fputcsv-to-use-enclosure-for-all-fields
- Add type formatter. The original
fputcsv
function formats (maybe depends on the system) numbers like1.23
. But it would be nice to define for example the decimal separator. So I can define the german comma as a decimal separator1,23
. You can imagine that this applies to any other types, e. g. date and time.
(I know, that you already have a filter mechanism. But the filter is feed with serialized line splitted by the spearator as strings, not with the raw data).
theking2 commented
I concur, the standard fputcsv in php7 is not very flexible. I suggest to go to the RFC 4180 that is more specific.
- What is missing is a customizable record separator (might be \r or \n or \r\n, or something completely different)
- The default behavior of escaping an enclosure by repeating it is rather random, throwing an exception if no escape_char is supplied might actually be good for defensive programming.