Re: fgetcsv incompatible with fputcsv

From: Date: Thu, 20 Nov 2014 18:14:57 +0000
Subject: Re: fgetcsv incompatible with fputcsv
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-79046@lists.php.net to get a copy of this message
Tjerk Meesters wrote: >> On 20 Nov 2014, at 00:26, Christoph Becker <cmbecker69@gmx.de> wrote: >> >> 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. > > Actually that bug report seems to suggest that fputcsv() uses backslash to encode enclosure > characters, but AFAICT it doesn’t. Apparently, there is a somewhat hidden bug, see <http://3v4l.org/El5Xs> for a simplified test script. The expected result is string(14) ""a""b","a\""b"" or maybe string(14) ""a\"b","a\\"b"" The actual result makes no sense to me, even though str_getcsv() parses it "correctly". > And then there are bug reports like > https://bugs.php.net/bug.php?id=67566 which were fixed but really > just made the situation worse =( ACK. >> <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? > > Yeah, I didn’t realise the can of worms until I opened it; I’ll round up all the bug > reports and run them against whatever RFC I can get my hands on. > > PS: Favourite quote from the semi-authoritative spec of Perl_CSV: > http://rath.ca/Misc/Perl_CSV/CSV-2.0.html#csv: > >> Given that the essence of CSV files is simplicity, I have decided to reject all escape and >> escaped characters with the exception of quoation marks appearing within quotation marks … > > Good times :) One might argue that the essence of CSV files is being a data exchange format, so applying Postel's law would be reasonable. :) -- Christoph M. Becker

« previous php.internals (#79046) next »