PHP code example of mirays / marc

1. Go to this page and download the library: Download mirays/marc library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

mirays / marc example snippets


foreach (\MirayS\Marc\Marc::books('dnb_all_dnbmarc.1.mrc.gz') as $book) {
    echo implode(',', $book->isbn13s()), ' ', $book->title(), PHP_EOL;
}

\MirayS\Marc\Marc::read('oai-page.xml');        // records instead of shortcuts
\MirayS\Marc\Marc::readString($payload);        // same detection over a string
\MirayS\Marc\Marc::detect('dump.ndjson');       // Format::MarcJson

$reader = new \MirayS\Marc\Reader\Iso2709Reader();

foreach ($reader->read('dnb_all_dnbmarc.1.mrc.gz') as $record) {
    $book = \MirayS\Marc\Bibliographic\Bibliographic::of($record);

    echo implode(',', $book->isbn13s()), ' ', $book->title(), PHP_EOL;
}

echo $reader->getRecordCount();
$reader->getIssues();

$xml = (new \MirayS\Marc\Writer\MarcXmlWriter())->write($record);
$json = (new \MirayS\Marc\Writer\MarcJsonWriter())->write($record);
$binary = (new \MirayS\Marc\Writer\Iso2709Writer())->write($record);

$record->getId();                       // 001
$record->getControlValue('005');
$record->getDataFields('700');
$record->getDataField('245')?->subfield('a');
$record->subfieldValues('020', 'a');
$record->firstSubfield('260', 'b');

$record->getLeader()->getEncodingLevel();
$record->getFixedField008()?->getDate1();
$record->getFixedField008()?->get('literaryForm');
$record->getFixedFields007()[0]->isOnlineResource();
$record->getFixedFields006()[0]->getMaterialType();

$record->getLeader()->getRecordFormat();   // RecordFormat::Authority
$record->getFixedField008()?->get('kindOfRecord');
CodeList\Dictionary::for($record->getLeader()->getRecordFormat());

$title = $record->getDataField('245');

$record->getAlternateGraphics($title);     // the 880 fields holding the original script
$record->getLinkedField($alternate);       // and back to 245
$record->getScriptPairs();                 // every linked pair in the record
$record->getUnlinkedAlternateGraphics();   // 880s with occurrence 00

$alternate->getLinkage()?->script;         // 'Cyrl'
$alternate->getLinkage()?->isRightToLeft();
Bibliographic::of($record)->titleOriginalScript();

$fixed = $record->getFixedField008();

$fixed->get('typeOfDate');        // 's'
$fixed->describe('typeOfDate');   // 'Single known date/probable date'
$fixed->label('literaryForm');    // 'Literary form'
$fixed->values('literaryForm');   // ['0' => 'Not fiction …', 'f' => 'Novels', …]
$fixed->toLabelled();             // every coded position, spelled out

$record->getLeader()->describe('encodingLevel');
$record->getFixedFields007()[0]->describe('specificMaterialDesignation');