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
|
<?php
class CSVIterator implements Iterator
{
const ROW_SIZE = 4096;
private $filePointer;
private $currentElement;
private $rowCounter;
private $delimiter;
public function __construct( $file, $delimiter = ',' )
{
$this->filePointer = fopen( $file, 'r' );
$this->delimiter = $delimiter;
}
public function rewind()
{
$this->rowCounter = 0;
rewind( $this->filePointer );
}
public function current()
{
$this->currentElement = fgetcsv($this->filePointer,self::ROW_SIZE,$this->delimiter);
$this->rowCounter++;
return $this->currentElement;
}
public function key()
{
return $this->rowCounter;
}
public function next()
{
return !feof( $this->filePointer );
}
public function valid()
{
if( !$this->next() )
{
fclose( $this->filePointer );
return FALSE;
}
return TRUE;
}
} // end class
?>
|