Example #1
0
 protected function detectDialect($data)
 {
     // if dialect isn't specified in the constructor, the reader will attempt to figure out the format
     $autodetect = new Csv_AutoDetect();
     $dialect = $autodetect->detect($data);
     // @todo Header detection isn't quite right (need to remove the first row from iteration)
     /*if ($autodetect->hasHeader($data)) {
           $this->rewind();
           pre($this->loadRow());
           $this->setHeader($this->loadRow());
       }*/
     return $dialect;
 }
Example #2
0
 public function test_Detect_Can_Detect_Header()
 {
     $data = file(realpath('data/tab-200.csv'));
     $sample1 = implode("", array_slice($data, 0, 20));
     $sample2 = implode("", array_slice($data, 1, 21));
     $sample3 = implode("\n", file(realpath("data/excel-formatted.csv")));
     $sample4 = implode("", file(realpath("data/pipe-100.csv")));
     $detecter = new Csv_AutoDetect();
     $this->assertTrue($detecter->hasHeader($sample1));
     $this->assertFalse($detecter->hasHeader($sample2));
     $this->assertFalse($detecter->hasHeader($sample3));
     $this->assertTrue($detecter->hasHeader($sample4));
 }
Example #3
0
 protected function detectDialect($data)
 {
     // if dialect isn't specified in the constructor, the reader will attempt to figure out the format
     $autodetect = new Csv_AutoDetect();
     return $autodetect->detect($data);
 }
Example #4
0
 /**
  * @param $file
  * @return \Csv_Dialect
  */
 public static function determineCsvDialect($file)
 {
     // minimum 10 lines, to be sure take more
     $sample = "";
     for ($i = 0; $i < 10; $i++) {
         $sample .= implode("", array_slice(file($file), 0, 11));
         // grab 20 lines
     }
     try {
         $sniffer = new \Csv_AutoDetect();
         $dialect = $sniffer->detect($sample);
     } catch (\Exception $e) {
         // use default settings
         $dialect = new \Csv_Dialect();
     }
     // validity check
     if (!in_array($dialect->delimiter, array(";", ",", "\t", "|", ":"))) {
         $dialect->delimiter = ";";
     }
     return $dialect;
 }
Example #5
0
 /**
  * determines CSV Dialect
  *
  * @static
  * @param  $file
  * @return Csv_Dialect
  */
 public static function determineCsvDialect($file)
 {
     // minimum 10 lines, to be sure take more
     $sample = "";
     for ($i = 0; $i < 10; $i++) {
         $sample .= implode("", array_slice(file($file), 0, 11));
         // grab 20 lines
     }
     try {
         $sniffer = new Csv_AutoDetect();
         $dialect = $sniffer->detect($sample);
     } catch (Exception $e) {
         // use default settings
         $dialect = new Csv_Dialect();
     }
     return $dialect;
 }