Exemple #1
0
 public function parse($data)
 {
     $standard = new Standard();
     $a = array();
     $lines = explode($this->lineseperator, $data);
     foreach ($lines as $line) {
         $row = str_getcsv($line, $this->fieldseperator);
         // Handle the recordType properties
         $recordtypename = $row[1];
         $recordtypecode = $row[2];
         if ($standard->hasRecordType($recordtypecode)) {
             $recordType = $standard->getRecordType($recordtypecode);
         } else {
             $recordType = new RecordType($recordtypecode, $recordtypename);
             $standard->addRecordType($recordType);
         }
         // Handle the element properties
         $code = $row[3];
         $name = $row[4];
         $elementType = new ElementType($code, $name);
         $elementType->setType($row[5]);
         $elementType->setLength($row[6]);
         $elementType->setPattern($row[7]);
         $elementType->setEndPosition($row[8]);
         $recordType->addElementType($elementType);
     }
     return $standard;
 }
Exemple #2
0
 public function parse(Standard $standard, $data)
 {
     $m = new Message($standard);
     $lines = explode("\n", $data);
     foreach ($lines as $line) {
         if ($line) {
             //echo $line;
             $code = substr($line, 0, 2);
             if (!$standard->hasRecordType($code)) {
                 throw new RuntimeException("Standard does not contain recordtype definition for code " . $code);
             }
             $recordType = $standard->getRecordType($code);
             $record = new Record($recordType);
             $m->addRecord($record);
             foreach ($recordType->getElementTypes() as $et) {
                 $end = $et->getEndPosition();
                 $len = $et->getLength();
                 $start = $end - $len;
                 $value = substr($line, $start, $len);
                 $e = new Element($et);
                 $e->setValue($value);
                 $record->addElement($e);
             }
         }
     }
     return $m;
 }