Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:103285 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 27603 invoked from network); 30 Sep 2018 14:11:28 -0000 Received: from unknown (HELO mout.gmx.net) (212.227.17.21) by pb1.pair.com with SMTP; 30 Sep 2018 14:11:28 -0000 Received: from [192.168.2.136] ([91.8.166.159]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M0tr1-1ft1nb3o4d-00v8IQ; Sun, 30 Sep 2018 12:20:33 +0200 Received: from [192.168.2.136] ([91.8.166.159]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M0tr1-1ft1nb3o4d-00v8IQ; Sun, 30 Sep 2018 12:20:33 +0200 To: Pierre Joye , Stas Malyshev Cc: PHP internals References: <3081944c-4e55-f303-fddd-7f03cff04034@gmail.com> Message-ID: Date: Sun, 30 Sep 2018 12:20:34 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:oaAJoud3YFHB768nQUKVvN4fsCtQLIBi2F8D0a2+X7ql/amv/tr hpuGWRVgSi45lVs6ky9HkJIa6TNSVQvIstca+8oHLL332A8hQT8StUHFuBOEryMJFIeEMTs +wH2r0RPNoTBRe13jTQuumPXCLzf6WA7HMspX7+9MmlmyCLTDbJo6zSV7irjrdzt3UMrK9Y lZTPAjhOBPFMheVPTv+ig== X-UI-Out-Filterresults: notjunk:1;V01:K0:UaZSk38eRuE=:1BmdX3yo97MjmRzNJJDzMF K2bN4fNnb43aHdWI67dvXnAyaB0lcXth263TFzOCnSInSeCPGMTox9VCzqeixHKyCqrJkjMH1 i9zmr+ZsWCnGP41SjPSUG2ox6a9u3GRKtGPrEPQqL56EpjrqVfsfDSRRFXp/I8Hj94dun7UZ3 Jsc24iaM7Kr2QATiZbmejAmtgu95BBO5JMG6QbSFia+ZLj7UhaoNmnO7UCVcgSpb5bGLse6xD L9lzWe/RkMmXfDKMHq2l2EYcZgiqc3/g/SEZeLri7P58WACNKGNTzUxdrx13yOallNhP8r2Uu beewNE2lUTcoi/GdHfZSxW5B/5oq6qgVZzN7jNBi8XmFxvxwq+Rts3g93qcXk1uv6rV363D6M ZZ9KwaMWaRyir27I77RKrSV5RzniqI9IzuTrqVRwWjetOH3ZK3qVDifa06GlhNB0AK+iqpYHe kLwiUzsD5CdFsJohetxxthyBxmbnL04WPq8RKF/LKVqbpV2bEvJOZ/OjxhIIG/9OvKftBj2bf gMaaFhW++SHe3v3ZRB2e+C3SbsxTmBNeJgHBWpaoRYjVJSMV17S4dHUjQJWOo9snpJHyqKYl4 vvQYtZN+ercBhJASF54k6l3gG6rYA1Bq29MFYMcp6AOspPMjCrsWGklNtLIA95OK3s9PdJ+l0 VK+xONW/Lj4oy1gKjhk5TsgjRKslIabovjp4Jt2o9R6WVXJ9B8n8Z/eqjpc/D3Fl2G7LrkYDI nhmgmsyrWmmBW2ZOxDnKkHSX62k9mQ7CjkH6Bnu08EbqxVXxgg1UxO/QGh647/YsBlcSJX9LY Hm7z85YpLSyhUKARzE9cQjUYPE9uugiWSXrujGSzq4F6sbZ1cs= Subject: Re: [PHP-DEV] [RFC] Kill proprietary CSV escaping mechanism From: cmbecker69@gmx.de ("Christoph M. Becker") On 30.09.2018 at 06:06, Pierre Joye wrote: > On Fri, Sep 28, 2018, 2:00 PM Stanislav Malyshev > wrote: > >>> I hereby put the “Kill proprietary CSV escaping mechanism” under >> discussion: >>> >>> >> >> For fputcsv (and generally writing) this is probably OK. I am much more >> concerned about reading - this may make files generated by PHP be >> unreadable by php. And some use cases keep archives for a very long >> time. Trying to find something in a backup and discovering that your >> code is not longer able to read your data is no fun. > > This is a very good point. Removing it in read mode is going to break > things badly out there (I had a few projects using it. We need a sensible > decision here. If we cannot eventually get rid of the escaping for CSV reading (note that I proposed to keep the possibility to use it until PHP *9*), I don't think that we should remove it for CSV writing either, since that would make SplFileObject::setCsvControl() and ::getCsvControl() pretty much confusing. Consequently, it wouldn't make sense to deprecate using a non-empty string as $escape, and therefore we can't change the default. So we're basically left with , which, in my opinion, doesn't need an RFC at all. Anybody who uses the escaping mechanism (deliberately or unwittingly) should be aware of the roundtrip issues (see and ), though. -- Christoph M. Becker