setMultiSchema(); $rows = iterator_to_array($mapper); self::assertSame([ ["nom" => "clain", "prenom" => "jephté", "age" => "45"], ["nom" => "enpion", "prenom" => "tarte", "age" => "36"], ["nom" => "x", "prenom" => "y", "age" => false], ["nom" => "z", "prenom" => false, "age" => false], ["a" => "first", "b" => "second"], ], $rows); } function testMapper2() { $reader = new StringReader(<< "clain", "comment" => "\"ceci est", "num" => null], ["nom" => "un commentaire\"", "comment" => "45", "num" => null], ], $rows); } function testMapper3() { $reader = new StringReader(""); $rows = iterator_to_array(new Csv2AssocMapper(new LineReader($reader))); self::assertSame([], $rows); } function testMapper4() { $reader = new StringReader("nom,prenom,age"); $rows = iterator_to_array(new Csv2AssocMapper(new LineReader($reader))); self::assertSame([], $rows); } function testMapper5() { $reader = new StringReader("nom,prenom,age clain,jephté,45 enpion,, flash"); $reader->seek(); $mapper = new Csv2AssocMapper(new LineReader($reader)); $rows = iterator_to_array($mapper); self::assertSame([ ["nom" => "clain", "prenom" => "jephté", "age" => "45"], ["nom" => "enpion", "prenom" => "", "age" => ""], ["nom" => "flash", "prenom" => false, "age" => false], ], $rows); $reader->seek(); $mapper = new Csv2AssocMapper(new LineReader($reader)); $mapper->setMapEmpty(false); $rows = iterator_to_array($mapper); self::assertSame([ ["nom" => "clain", "prenom" => "jephté", "age" => "45"], ["nom" => "enpion", "prenom" => false, "age" => false], ["nom" => "flash", "prenom" => false, "age" => false], ], $rows); $reader->seek(); $mapper = new Csv2AssocMapper(new LineReader($reader)); $mapper->setMapEmpty(null); $rows = iterator_to_array($mapper); self::assertSame([ ["nom" => "clain", "prenom" => "jephté", "age" => "45"], ["nom" => "enpion", "prenom" => null, "age" => null], ["nom" => "flash", "prenom" => false, "age" => false], ], $rows); } function testMapper6() { $reader = new FileReader(__DIR__ . "/utf8.csv"); $rows = iterator_to_array(new Csv2AssocMapper(new LineReader($reader))); self::assertSame([ ["nom" => "clain", "prénom" => "jephté", "age" => "45"], ], $rows); $reader = new FileReader(__DIR__ . "/cp1252.csv"); $rows = iterator_to_array(new Csv2AssocMapper(new IconvMapper("cp1252", new LineReader($reader)))); self::assertSame([ ["nom" => "clain", "prénom" => "jephté", "age" => "45"], ], $rows); } }