/** * Function parses Csv line due previously detected column order, * special treatment for mandatory columns * * @return parsed data line or false if error */ private function parseCsvLine($line) { $data = str_getcsv($line); // different count of data cols than header cols, bad CSV if (count($data) != $this->colsNum && count($data) != 1) { // == 1 probably last empty line // different number of cols than in header, file is not in correct format return false; } $dataLine = new CsvLine($data[$this->colsOrder["CATEGORIES"]], $data[$this->colsOrder["SUMMARY"]], $data[$this->colsOrder["DTSTART"]], $data[$this->colsOrder["DTEND"]]); foreach ($this->colsOrder as $col => $order) { switch ($col) { case "TIMEZONE": $dataLine->setTimezone($data[$order]); break; case "LOCATION": $dataLine->setLocation($data[$order]); break; case "DTSTAMP": $dataLine->setDtstamp($data[$order]); break; case "X-EXTRAINFO": $dataLine->setExtraInfo($data[$order]); break; case "CONTACT": $dataLine->setContact($data[$order]); break; case "DESCRIPTION": $dataLine->setDescription($data[$order]); break; case "RRULE": $dataLine->setRrule($data[$order]); break; case "UID": $dataLine->setUid($data[$order]); break; case "CATEGORIES": case "SUMMARY": case "DTSTART": case "DTEND": break; case "NOENDTIME": $dataLine->setNoendtime($data[$order]); break; case "MULTIDAY": $dataLine->setMultiday($data[$order]); break; default: $dataLine->customField($data[$order], $col); break; } } return $dataLine; }
/** * Function parses Csv line due previously detected column order, * special treatment for mandatory columns * * @return parsed data line or false if error */ private function parseCsvLine($line) { $data = str_getcsv($line); // different count of data cols than header cols, bad CSV if (count($data) != $this->colsNum && count($data) != 1) { // == 1 probably last empty line // different number of cols than in header, file is not in correct format return false; } $dataLine = new CsvLine($data[$this->colsOrder["CATEGORIES"]], $data[$this->colsOrder["SUMMARY"]], $data[$this->colsOrder["DTSTART"]], $data[$this->colsOrder["DTEND"]]); if (isset($this->colsOrder["TIMEZONE"])) { $dataLine->setTimezone($data[$this->colsOrder["TIMEZONE"]]); } if (isset($this->colsOrder["LOCATION"])) { $dataLine->setLocation($data[$this->colsOrder["LOCATION"]]); } if (isset($this->colsOrder["DTSTAMP"])) { $dataLine->setDtstamp($data[$this->colsOrder["DTSTAMP"]]); } if (isset($this->colsOrder["X-EXTRAINFO"])) { $dataLine->setExtraInfo($data[$this->colsOrder["X-EXTRAINFO"]]); } if (isset($this->colsOrder["CONTACT"])) { $dataLine->setContact($data[$this->colsOrder["CONTACT"]]); } if (isset($this->colsOrder["DESCRIPTION"])) { $dataLine->setDescription($data[$this->colsOrder["DESCRIPTION"]]); } if (isset($this->colsOrder["RRULE"])) { $dataLine->setRrule($data[$this->colsOrder["RRULE"]]); } return $dataLine; }