1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- /**
- * Created by PhpStorm.
- * User: jaco
- * Date: 28/04/16
- * Time: 12.34
- */
- $doc = <<<DOC
- Rebal.
- Usage:
- rebal.php [<input> <output>]
- Options:
- -h --help Show this screen.
- --version Show version.
- DOC;
- require('src/docopt.php');
- require 'File/MARC.php';
- $args = Docopt::handle($doc, array('version'=>'RebAl-CLI 0.1'));
- //foreach ($args as $k=>$v)
- // print $k.': '.$v.PHP_EOL;
- $in = $args['<input>'];
- $out = $args['<output>'];
- $count = 0;
- // Retrieve a set of MARC records from a file
- $entries = new File_MARC($in);
- // Prepare to write the new MARC file
- $marc21_file = fopen($out, "wb");
- // Iterate through the retrieved records
- while ($record = $entries->next()) {
- // Get the UNIMARC author field and iterate through subfields
- // normalising the output if the Name is found without comma
- $lead_authors = $record->getFields('700');
- $sec_authors = $record->getFields('702');
- foreach ($lead_authors as $auth) {
- $a = $auth->getSubfield('a');
- $b = $auth->getSubfield('b');
- if ($b && strpos($b, ',')) {
- //print $b;
- //print "\n";
- $count++;
- } else if ($b) {
- $bdata = $b->getData();
- $b->setData(', ' . $bdata);
- //print $b;
- //print "\n";
- }
- if ($a) {
- $adata= $a->getData();
- $a->setData(ucwords(strtolower($adata)));
- };
- }
- foreach ($sec_authors as $auth) {
- $a = $auth->getSubfield('a');
- $b = $auth->getSubfield('b');
- if ($b && strpos($b, ',')) {
- //print $b;
- //print "\n";
- $count++;
- } else if ($b) {
- $bdata = $b->getData();
- $b->setData(', ' . $bdata);
- //print $b;
- //print "\n";
- }
- if ($a) {
- $adata= $a->getData();
- $a->setData(ucwords(strtolower($adata)));
- };
- }
- fwrite($marc21_file, $record->toRaw());
- //print "\n";
- }
- print $count;
- fclose($marc21_file);
- ?>
|