Camspiers\StatisticalClassifier\DataSource\CSV::read PHP Method

read() public method

public read ( )
    public function read()
    {
        $entries = array();
        if (file_exists($this->options['file'])) {
            $handle = fopen($this->options['file'], 'r');
            $columns = $this->readColumns($handle);
            $this->checkColumns($columns);
            $columnTotal = count($columns);
            $entryCount = 0;
            $hasModifier = is_callable($this->options['category_modifier']);
            while (true) {
                if ($this->options['limit'] && $this->options['limit'] < $entryCount) {
                    break;
                }
                if (($csvData = $this->readLine($handle)) === false) {
                    break;
                }
                if ($columnTotal !== count($csvData)) {
                    continue;
                }
                $document = array();
                foreach ($this->options['document_columns'] as $column) {
                    $document[] = $csvData[$columns[$column]];
                }
                $category = $csvData[$columns[$this->options['category_column']]];
                if ($hasModifier) {
                    $category = $this->options['category_modifier']($category);
                }
                $entries[] = array('document' => implode(' ', $document), 'category' => $category);
                $entryCount++;
            }
            fclose($handle);
        }
        return $entries;
    }