diff --git a/php/src/file/IReader.php b/php/src/file/IReader.php index 36a351b..fa96f7d 100644 --- a/php/src/file/IReader.php +++ b/php/src/file/IReader.php @@ -40,4 +40,6 @@ interface IReader extends _IFile { function unserialize(?array $options=null, bool $close=true, bool $alreadyLocked=false); function copyTo(IWriter $dest, bool $closeWriter=false, bool $closeReader=true): void; + + function setCsvFlavour(?string $flavour): void; } diff --git a/php/src/file/csv/CsvReader.php b/php/src/file/csv/CsvReader.php index d923976..317fda0 100644 --- a/php/src/file/csv/CsvReader.php +++ b/php/src/file/csv/CsvReader.php @@ -2,7 +2,9 @@ namespace nulib\file\csv; use nulib\file; +use nulib\file\_IFile; use nulib\file\FileReader; +use nulib\file\IReader; use nulib\file\tab\AbstractReader; use nulib\file\tab\TAbstractReader; @@ -20,7 +22,12 @@ class CsvReader extends AbstractReader { protected ?string $inputEncoding; function getIterator() { - $reader = new FileReader(file::fix_dash($this->input)); + $input = $this->input; + if ($input instanceof IReader) { + $reader = $input; + } else { + $reader = new FileReader(file::fix_dash($input)); + } $inputEncoding = $this->inputEncoding; if ($inputEncoding !== null) { $reader->appendFilter("convert.iconv.$inputEncoding.utf-8");