CsvParser.php
1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
/**
*/
namespace artweb\yii_multiparser;
use common\components\CustomVarDamp;
/**
* Class CsvParser
* @package artweb\yii_multiparser
* @todo - перевести на анг. яз.
*/
class CsvParser extends TableParser
{
/** @var string - разделитель csv */
public $delimiter = ';';
/**
* метод устанвливает нужные настройки объекта SplFileObject, для работы с csv
*/
public function setup()
{
$this->file->setCsvControl($this->delimiter);
$this->file->setFlags(\SplFileObject::READ_CSV);
$this->file->setFlags(\SplFileObject::SKIP_EMPTY);
parent::setup();
}
public function read()
{
parent::read();
return $this->result;
}
protected function readRow( )
{
$this->row = $this->file->fgetcsv();
}
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++) {
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 == '';
}
}