|
@@ -22,6 +22,10 @@ use Symfony\Component\Config\Resource\FileResource;
|
|
|
*/
|
|
|
class CsvFileLoader extends ArrayLoader implements LoaderInterface
|
|
|
{
|
|
|
+ protected $delimiter = ';';
|
|
|
+ protected $enclosure = '"';
|
|
|
+ protected $escape = '\\';
|
|
|
+
|
|
|
/**
|
|
|
* {@inheritdoc}
|
|
|
*
|
|
@@ -38,7 +42,7 @@ class CsvFileLoader extends ArrayLoader implements LoaderInterface
|
|
|
}
|
|
|
|
|
|
$file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY);
|
|
|
- $file->setCsvControl(';');
|
|
|
+ $file->setCsvControl($this->delimiter, $this->enclosure, $this->escape);
|
|
|
|
|
|
foreach($file as $data) {
|
|
|
if (substr($data[0], 0, 1) === '#') {
|
|
@@ -61,4 +65,18 @@ class CsvFileLoader extends ArrayLoader implements LoaderInterface
|
|
|
|
|
|
return $catalogue;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Set the delimiter, enclosure and escape character for CSV
|
|
|
+ *
|
|
|
+ * @param string $delimiter delimiter character
|
|
|
+ * @param string $enclosure enclosure character
|
|
|
+ * @param string $escape escape character
|
|
|
+ */
|
|
|
+ public function control($delimiter = ';', $enclosure = '"', $escape = '\\')
|
|
|
+ {
|
|
|
+ $this->delimiter = $delimiter;
|
|
|
+ $this->enclosure = $enclosure;
|
|
|
+ $this->escape = $escape;
|
|
|
+ }
|
|
|
}
|