Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:103293 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 22751 invoked from network); 1 Oct 2018 12:52:20 -0000 Received: from unknown (HELO mail-it1-f181.google.com) (209.85.166.181) by pb1.pair.com with SMTP; 1 Oct 2018 12:52:20 -0000 Received: by mail-it1-f181.google.com with SMTP id i76-v6so4784257ita.3 for ; Mon, 01 Oct 2018 02:01:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=NITvNhC1HsmkmsrKC6ZERmyqUccyx29xJM54U5yFkY8=; b=SRoxP869u7SSQgsCvjdcIhvGEGckcA0KEltvu8oSiwX5JM/yKV2frnOnks1gGO2Q1q fgNsiidzqn4VPIEa2LNvoGvDIJAcvneGWHeme2VvMmypmDCNZCu/bFlgk38w8INK8Ynu DUmM1L6NLvtT6gEtWKBcx1vAtSDMfiKb9uQ7gwWqXMyYc3Fgn2RfsHBtSgKzoCFkiygn OKNcX9mybF3r7u8nJTgfRYuvnezOtkPDpecQ9PV/jAM3OBN5pNIa+VdGIlGRXFDqphJ8 TcCbgUdgD0qR7Vf1d4icMvgm+020SSli6AOVX7huch0kLtHurnUfZmgSLHgxUYKxbxbt H0zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=NITvNhC1HsmkmsrKC6ZERmyqUccyx29xJM54U5yFkY8=; b=CfqYgMbYzFJZekZEIz/FesA10FHMprQATVHHx83XbwAt6YXC2aMlgddzqP3KKu+LLF TXzoM5rKN6UZwzXrWU/vmk6m3cxxpZI988JBD5R6gce18HRNuykkYrs/uBbSl8Pea081 YXmKfjnfeKOpzwgbSywPTa6G5rhTtdazwvZA3FPsVscB30c8C9LJojUsqgHm57zbb7ye JkxiPfNilL8585KcFI5a6PbuFmDaxFBsgxnOdbQz1+DM65ACbXYlbKPF6AHvUudmE0Ax r9NAq63VGBRZs8To9sTl1XuPFxyqqe3vHjvN3d/NVnR8DGYJNRrriwtmAxvc2AiLCT1u EVxA== X-Gm-Message-State: ABuFfoh5lBZqF6k5Fn8mg43yQUX2bJ0f9Mxhgs9RChBsFowKy8QHpJVT dc2oD2ZhhFjrbtTdHZdFSc/+CnblE8VGRwXWBVpoa03boMQ= X-Google-Smtp-Source: ACcGV6096Dc+3NxNXLpsd4yTtx8lWAUu18LiMl+WYlBLprGf+4NV20FgLbl0AsXlK35lW8ZHQk5J3Kpq29tPm7q58y0= X-Received: by 2002:a24:3985:: with SMTP id l127-v6mr9322735ita.27.1538384499537; Mon, 01 Oct 2018 02:01:39 -0700 (PDT) MIME-Version: 1.0 Date: Mon, 1 Oct 2018 11:01:05 +0200 Message-ID: To: cmbecker69@gmx.de Cc: internals@lists.php.net Content-Type: multipart/alternative; boundary="0000000000009f7a250577270d65" Subject: [RFC] Kill proprietary CSV escaping mechanism From: nyamsprod@gmail.com (ignace nyamagana butera) --0000000000009f7a250577270d65 Content-Type: text/plain; charset="UTF-8" As a library maintainer I agree with Stanislav Malyshev . I'm currently working on a polyfill in League\Csv to enable usage of the empty string with the escape character. While providing such feature is straightforward for the insertion part, doing the same for the reading part in quite complex because of how PHP fgetcsv works. Removing the escape character from fgetcsv means that any decent library will have to provide a polyfill to enable correctly reading legacy CSV produced with the escape character. And quite frankly seeing how broken the escape character implementation is, it's easier to keep it in PHP codebase to ease parsing while making sure it is no longer the default. So while I would prefer to have a PHP9 free of the escape character mechanism keeping the mechanism via the fgetcsv function for legacy purposes seems reasonable. Of course, this should be highlighted in the documentation. --0000000000009f7a250577270d65--