Ejemplo n.º 1
0
 function _parseRecord($rec)
 {
     $r = new MarcRecord();
     $this->_recnum += 1;
     $err = $r->setLeader(substr($rec, 0, 24), $this->lenient);
     if ($err) {
         return $this->_error("Invalid Leader: " . $err);
     }
     $base = $r->baseAddr;
     $entries = $this->_parseDirectory(substr($rec, 24, $base - 24));
     if (is_a($entries, 'MarcParseError')) {
         return $entries;
     }
     foreach ($entries as $e) {
         $f = substr($rec, $base + $e['start'], $e['length']);
         $field = $this->_parseField($e['tag'], $f);
         if (is_a($field, 'MarcParseError')) {
             return $field;
         }
         array_push($r->fields, $field);
     }
     return $r;
 }