899) { continue; } $rec_len = substr($cat, $i+3, $cat_record_lof); $rec_start = substr($cat, $i+3+$cat_record_lof, $cat_record_scp); $rec = substr($info, $rec_start, $rec_len-1); $temp = array(); $unit = FALSE; $unit_letter = 'a'; for($j=0; $j<$rec_len; $j++) { $char = substr($rec, $j, 1); if(($j==0 || $j==1) && $rec_num>9 && $char!=' ') { if($j==0) { $temp['f0'] = $char; } elseif($j==1) { $temp['f1'] = $char; } } elseif($char == UNIT_SEPERATOR) { $unit = TRUE; } elseif($unit === TRUE) { $temp[$unit_letter] = trim($collect, ' :;,/'); $unit = FALSE; $unit_letter = $char; $collect = ''; } else { $collect .= $char; } } $temp[$unit_letter] = trim($collect, ' :;,/'); $collect = ''; $return[$rec_num][] = $temp; } return $return; } static function to_array($MARC) { if(!$MARC['020']) { $MARC['020'] = array(); } foreach($MARC['020'] as $value) { $value = (string)$value['a']; if(strlen($value)==9 AND strlen($value)!=13) { $value .= checksum::ISBN($value); } if( strlen($value) > strlen($ISBN) ) { $ISBN = $value; } } if(!$MARC['022']) { $MARC['022'] = array(); } foreach($MARC['022'] as $value) { $value = (int)$value['a']; if( strlen($value) > strlen($ISSN) ) { $ISSN = $value; } } if($MARC['100'][0]['f0']==1) { $autor = explode(', ', $MARC['100'][0]['a'], 2); $MARC['100'][0]['a'] = str_replace('.', '', $autor[1]).' '.$autor[0]; } if(empty($MARC['100'][0]['a'])) { $MARC['100'][0]['a'] = 'Praca zbiorowa'; } $MARC['260'][0]['b'] = str_replace( array( 'Wydaw.', 'Państ.', 'Państw.', 'PK', 'Min.', ), array( 'Wydawnictwo', 'Państwowy', 'Państwowe', 'Politechnika Krakowska', 'Ministerstwa', ), $MARC['260'][0]['b']); if($MARC['041'][0]['a'] == 'pol') { $MARC['041'][0]['a'] = 'polski'; } if(empty($MARC['041'][0]['a'])) { $MARC['041'][0]['a'] = 'polski'; } if(!empty($MARC['245'][0]['b'])) { $MARC['245'][0]['a'] = trim($MARC['245'][0]['a'], '().,\\/"\' ').'. '.ucfirst(trim($MARC['245'][0]['b'], '().,\\/"\' ')); } return array( 'tytul' => trim($MARC['245'][0]['a'], '().,\\/"\' '), 'autor' => trim($MARC['100'][0]['a'], '().,\\/"\' '), 'rok' => trim($MARC['260'][0]['c'], '().,\\/"\' '), 'miejsce' => trim($MARC['260'][0]['a'], '().,\\/"\' '), 'wydawnictwo' => trim($MARC['260'][0]['b'], '().,\\/"\' '), 'wydanie' => trim($MARC['250'][0]['a'], '().,\\/"\' '), 'jezyk' => $MARC['041'][0]['a'], 'ISBN' => $ISBN, 'ISSN' => $ISSN, /* stan */ ); } static function to_database($kod, $MARC) { if(!$MARC['020']) { $MARC['020'] = array(); } foreach($MARC['020'] as $value) { $value = (int)$value['a']; if( strlen($value) > strlen($ISBN) ) { $ISBN = $value; } } if(!$MARC['022']) { $MARC['022'] = array(); } foreach($MARC['022'] as $value) { $value = (int)$value['a']; if( strlen($value) > strlen($ISSN) ) { $ISSN = $value; } } db2::add('ksiazki', array( 'id' => $kod, 'tytul' => $MARC['245'][0]['a'], 'autor' => $MARC['100'][0]['a'], 'rok' => $MARC['260'][0]['c'], 'miejsce' => $MARC['260'][0]['a'], 'wydawnictwo' => $MARC['260'][0]['b'], 'wydanie' => $MARC['250'][0]['a'], 'jezyk' => $MARC['041'][0]['a'], 'ISBN' => $ISBN, 'ISSN' => $ISSN, /* stan */ )); } } ?>