umlts / marc_reader
此包的最新版本(dev-master)没有可用的许可信息。
dev-master
2020-09-22 07:33 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^6.3
This package is auto-updated.
Last update: 2024-09-22 15:59:33 UTC
README
这个库用于那些对速度要求极高的用例。它比 Pear/File_MARC 快得多,尤其是在只需要部分字段的情况下。这使得该类非常适合索引大量记录集。
没有实现写入功能。而且几乎没有检查来确认 MARC 记录是否有效,甚至是格式正确的。
总结一下:它不是 File_MARC 的替代品,而是一个用于特殊用例的库。
用法
大多数方法返回记录的原始数据。有些方法(如 getSomethingAsAssocArray)返回嵌套的关联数组。
MarcRecordReader 类的所有方法都可以静态调用。
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 );