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