Re: fgetcsv incompatible with fputcsv

From: 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

« previous php.internals (#79002) next »