umlts/marc_reader

There is no license information available for the latest version (dev-master) of this package.

Installs: 4

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 0

Forks: 0

Open Issues: 0

Language:mIRC Script

dev-master 2020-09-22 07:33 UTC

This package is auto-updated.

Last update: 2024-04-22 15:09:44 UTC


README

This library is intended for use cases where speed is critical. It is way faster than Pear/File_MARC especially when just some of the fields are needed. This makes the class well suited for indexing large record sets.

There is no writing functionality implemented. And there are almost no checks to see if the MARC record is valid or even just well-formed.

To sum it up: It is not a replacement for File_MARC, it is a library for special use cases.

Usage

Most methods return raw data from the record. There are some methods (getSomethingAsAssocArray) which return nested, associative arrays.

All methods of the MarcRecordReader class can be called statically.

include_once __DIR__ . '/vendor/autoload.php';

use Umlts\MarcReader\MarcReader;
use Umlts\MarcReader\MarcRecordReader;

$mr = new MarcReader( '/path/to/marcfile.mrc', MarcReader::SOURCE_FILE );
$record = $mr->nextRaw();

// Get Leader
echo MarcRecordReader::getLeader( $record );

// Get Control Number (Tag 001)
echo MarcRecordReader::get001( $record );

// Get Control Fields
$control_fields = MarcRecordReader::getControlFields( '003', $record );

// Get Data Fields
$raw_data_fields = MarcRecordReader::getDataFields( '245', $record );
foreach ( $raw_data_fields as $field ) {
    print_r( MarcRecordReader::getDataFieldAsAssocArray( $field ) );
}

// Get whole record
$record_as_array = MarcRecordReader::getRecordAsAssocArray( $record );
print_r( $record_as_array );