Initial Commit
This commit is contained in:
commit
5e2f7dd2cc
2 changed files with 1209 additions and 0 deletions
56
rebal.php
Normal file
56
rebal.php
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?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>'];
|
||||
// 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');
|
||||
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";
|
||||
}
|
||||
}
|
||||
fwrite($marc21_file, $record->toRaw());
|
||||
//print "\n";
|
||||
}
|
||||
print $count;
|
||||
fclose($marc21_file);
|
||||
?>
|
1153
src/docopt.php
Normal file
1153
src/docopt.php
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue