经测试代码如下:
<?PHP
/**
* 遍历CSV类
*
* @param
* @arrange (512.笔记) jb51.cc
**/
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
?>