-
- /**
- * CSV ファイルをトラバースする
- * 編集: bbs.it-home.org
- */
- class CSVIterator は 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
- ?>
复制代
|