예제 #1
0
 public function testReadCsvFileWithColumnHeaders()
 {
     $file = new \SplFileObject(__DIR__ . '/../Fixtures/data_column_headers.csv');
     $csvReader = new CsvReader($file);
     $csvReader->setHeaderRowNumber(0);
     $this->assertEquals(array('id', 'number', 'description'), $csvReader->getFields());
     foreach ($csvReader as $row) {
         $this->assertNotNull($row['id']);
         $this->assertNotNull($row['number']);
         $this->assertNotNull($row['description']);
     }
     $this->assertEquals(array('id' => 6, 'number' => '456', 'description' => 'Another description'), $csvReader->getRow(2));
 }
예제 #2
0
 /**
  * @param \SplFileObject $file
  * @param array          $data
  * @return array
  */
 public function getCsvHeader(\SplFileObject $file, &$data)
 {
     $csvReader = new CsvReader($file, $data['delimiter']);
     $csvReader->setHeaderRowNumber(0, 1);
     $csvReader->setStrict(false);
     $data['count'] = $csvReader->count();
     $data['header'] = $csvReader->getColumnHeaders();
     if ($csvReader->hasErrors() || count($csvReader->getFields()) <= 1) {
         $this->setError('error read file');
     } else {
         $row = $csvReader->getRow(1);
         foreach ($row as $key => $value) {
             $data['first'][$key] = $value;
         }
     }
     return $data;
 }