Blame view

lib/CsvParser.php 1.62 KB
8e128526   Mihail   add xlsx parser
1
2
3
4
  <?php
  /**
  
   */
d0261fd1   Mihail   fixed namespace i...
5
  namespace yii\multiparser;
8e128526   Mihail   add xlsx parser
6
7
8
  
  /**
   * Class CsvParser
d0261fd1   Mihail   fixed namespace i...
9
   * @package yii\multiparser
8e128526   Mihail   add xlsx parser
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   * @todo - перевести на анг. яз.
   */
  class CsvParser extends TableParser
  {
      /** @var string - разделитель csv */
      public $delimiter = ';';
  
  
  
      /**
       * метод устанвливает нужные настройки объекта SplFileObject, для работы с csv
       */
      public function setup()
      {
  
221da14e   Mihail   change SplFileObj...
25
26
27
  //        $this->file->setCsvControl($this->delimiter);
  //        $this->file->setFlags(\SplFileObject::READ_CSV);
  //        $this->file->setFlags(\SplFileObject::SKIP_EMPTY);
8e128526   Mihail   add xlsx parser
28
29
30
31
32
33
34
35
36
  
          parent::setup();
  
      }
  
      public function read()
      {
          parent::read();
  
cd8b9f70   Mihail   add cleanUp metho...
37
38
          $this->cleanUp();
  
8e128526   Mihail   add xlsx parser
39
40
41
42
43
44
          return $this->result;
      }
  
  
      protected function readRow(  )
      {
221da14e   Mihail   change SplFileObj...
45
          $this->row = fgetcsv( $this->file, 0, $this->delimiter );
8e128526   Mihail   add xlsx parser
46
47
48
49
50
51
52
53
54
55
56
57
58
      }
  
      protected  function isEmptyRow(){
  
          $is_empty = false;
  
          if ($this->row === false || $this->row === NULL ) {
              return true;
          }
  
          $j = 0;
          for ($i = 1; $i <= count( $this->row ); $i++) {
  
cd8b9f70   Mihail   add cleanUp metho...
59
60
61
62
              if ( !isset( $this->row[ $i - 1 ] ) ) {
                  continue;
              }
  
8e128526   Mihail   add xlsx parser
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
              if ( $this->isEmptyColumn( $this->row[$i - 1] ) ) {
                  $j++;
              }
  
              if ( $j >= $this->min_column_quantity ) {
                  $is_empty = true;
                  break;
              }
          }
  
          return $is_empty;
      }
  
      protected  function isEmptyColumn( $val ){
          return $val == '';
      }
cd8b9f70   Mihail   add cleanUp metho...
79
80
81
82
  
      protected  function setResult(  ){
          $this->result[] = $this->row;
      }
8e128526   Mihail   add xlsx parser
83
  }