From 0507c22a952d4b377a7037936a8813ed780ac029 Mon Sep 17 00:00:00 2001 From: Alexandre Daubois Date: Thu, 25 Jul 2024 11:09:46 +0200 Subject: [PATCH] [Translation] Fix CSV escape char in `CsvFileLoader` on PHP >= 7.4 --- .../Component/Translation/Loader/CsvFileLoader.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Translation/Loader/CsvFileLoader.php b/src/Symfony/Component/Translation/Loader/CsvFileLoader.php index 8d5d4db9a721f..0cf05731bb231 100644 --- a/src/Symfony/Component/Translation/Loader/CsvFileLoader.php +++ b/src/Symfony/Component/Translation/Loader/CsvFileLoader.php @@ -22,7 +22,7 @@ class CsvFileLoader extends FileLoader { private $delimiter = ';'; private $enclosure = '"'; - private $escape = '\\'; + private $escape = ''; /** * {@inheritdoc} @@ -38,7 +38,7 @@ protected function loadResource(string $resource) } $file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY); - $file->setCsvControl($this->delimiter, $this->enclosure, $this->escape); + $file->setCsvControl($this->delimiter, $this->enclosure, '' === $this->escape && \PHP_VERSION_ID < 70400 ? '\\' : $this->escape); foreach ($file as $data) { if (false === $data) { @@ -56,10 +56,10 @@ protected function loadResource(string $resource) /** * Sets the delimiter, enclosure, and escape character for CSV. */ - public function setCsvControl(string $delimiter = ';', string $enclosure = '"', string $escape = '\\') + public function setCsvControl(string $delimiter = ';', string $enclosure = '"', string $escape = '') { $this->delimiter = $delimiter; $this->enclosure = $enclosure; - $this->escape = $escape; + $this->escape = '' === $escape && \PHP_VERSION_ID < 70400 ? '\\' : $escape; } }