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 unserialize(?array $options=null, bool $close=true, bool $alreadyLocked=false);
|
||||||
|
|
||||||
function copyTo(IWriter $dest, bool $closeWriter=false, bool $closeReader=true): void;
|
function copyTo(IWriter $dest, bool $closeWriter=false, bool $closeReader=true): void;
|
||||||
|
|
||||||
|
function setCsvFlavour(?string $flavour): void;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
namespace nulib\file\csv;
|
namespace nulib\file\csv;
|
||||||
|
|
||||||
use nulib\file;
|
use nulib\file;
|
||||||
|
use nulib\file\_IFile;
|
||||||
use nulib\file\FileReader;
|
use nulib\file\FileReader;
|
||||||
|
use nulib\file\IReader;
|
||||||
use nulib\file\tab\AbstractReader;
|
use nulib\file\tab\AbstractReader;
|
||||||
use nulib\file\tab\TAbstractReader;
|
use nulib\file\tab\TAbstractReader;
|
||||||
|
|
||||||
@ -20,7 +22,12 @@ class CsvReader extends AbstractReader {
|
|||||||
protected ?string $inputEncoding;
|
protected ?string $inputEncoding;
|
||||||
|
|
||||||
function getIterator() {
|
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;
|
$inputEncoding = $this->inputEncoding;
|
||||||
if ($inputEncoding !== null) {
|
if ($inputEncoding !== null) {
|
||||||
$reader->appendFilter("convert.iconv.$inputEncoding.utf-8");
|
$reader->appendFilter("convert.iconv.$inputEncoding.utf-8");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user