CsvReader accepte une instance de IReader
This commit is contained in:
parent
43c53b286a
commit
b1fc572fd8
@ -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;
|
||||
}
|
||||
|
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user