コード例 #1
0
ファイル: CsvLineTest.php プロジェクト: no-chris/connector
 public function testSplitWithEscapedEscapeCharacter()
 {
     $csvLineString = "col\\\t1\tcol\\t2\tcol3\tcol4";
     $csvLine = new CsvLine($csvLineString);
     $csvLineArray = $csvLine->split("\t");
     print_r($csvLineArray);
     $this->assertEquals(4, count($csvLineArray));
     $this->assertEquals("col\t1", $csvLineArray[0]);
     $this->assertEquals("colt2", $csvLineArray[1]);
     $this->assertEquals("col3", $csvLineArray[2]);
     $this->assertEquals("col4", $csvLineArray[3]);
 }
コード例 #2
0
ファイル: csvToiCal.php プロジェクト: madcsaba/li-de
 /**
  * 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;
 }
コード例 #3
0
 /**
  * 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;
 }
コード例 #4
0
ファイル: CsvFile.php プロジェクト: no-chris/connector
 private function splitCsvLine($csvLineString)
 {
     $csvLine = new CsvLine($csvLineString);
     return $csvLine->split($this->separator);
 }