Re: fgetcsv incompatible with fputcsv
| From: | Christoph Becker | Date: | Wed, 19 Nov 2014 16:26:48 +0000 |
| Subject: | Re: fgetcsv incompatible with fputcsv | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-79002@lists.php.net to get a copy of this message | ||
Tjerk Meesters wrote:
> Hi list,
>
> As I was fiddling with CSV data reading and writing I noticed that fgetcsv() is inherently
> incompatible with fputcsv() when it comes to the enclosure escape character that’s used.
>
> Example: http://3v4l.org/LHEZj
>
> The above example code demonstrates how, by default, fputcsv() encodes a backslash as is but
> fgetcsv() will treat that same backslash as the enclosure escape character as well as the enclosure
> character itself; this is rather surprising behaviour and imho unnecessarily complicated.
>
> I would suggest changing the behaviour in such a way that:
> a) the default enclosure escape character for fgetcsv() is a double quote.
> b) fgetcsv() only treats the escape character as … an escape character.
>
> Due to the kind of change BC can’t be maintained, so I’d propose this change for PHP 7.
>
> If anyone has violent objections to the above, or thinks that an RFC should be drawn up, do let
> me know … otherwise I’ll commit the change into master by next week or so.
Are you aware of <https://bugs.php.net/bug.php?id=50686>? It
seems this
very inconsistency has been reported a few years ago, but has been
tagged as "Wont fix" back then.
<https://bugs.php.net/bug.php?id=38929>
also seems to deal with this
inconsistency, and had been tagged as "Not a bug".
So maybe an RFC is appropriate?
--
Christoph M. Becker