From 1d702caccb9f091b738696185f778b1bfef7b5b2 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 --- Loader/CsvFileLoader.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Loader/CsvFileLoader.php b/Loader/CsvFileLoader.php index 8d5d4db9..0cf05731 100644 --- a/Loader/CsvFileLoader.php +++ b/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; } }