ck/php-marcspec
最新稳定版本:2.0.3
Composer 安装命令:
composer require ck/php-marcspec
包简介
PHP based MARCspec parser and validator
关键字:
README 文档
README
PHP MARCspec parser and validator.
For currently supported version of MARCspec - A common MARC record path language see http://marcspec.github.io/ .
Installation
Installation can be done by using composer. Just run
composer require ck/php-marcspec
PHP-MARCspec requires PHP 5.4 or later.
Usage
<?php require("vendor/autoload.php"); use CK\MARCspec\MARCspec; use CK\MARCspec\Field; use CK\MARCspec\Subfield; use CK\MARCspec\ComparisonString; use CK\MARCspec\SubSpec; // parse and access MARCspec like an array $fixed = new MARCspec('007[0]/1-8{/0=\a}'); $fixed['field']; // CK\MARCspec\FieldInterface echo $fixed['field']['tag']; // '007' echo $fixed['field']['charStart']; // 1 echo $fixed['field']['charEnd']; // 8 echo $fixed['field']['charLength']; // 8 $fixed['field']['subSpecs'][0]['leftSubTerm']; // CK\MARCspec\MARCspecInterface echo $fixed['field']['subSpecs'][0]['leftSubTerm']; // '007[0]/0' echo $fixed['field']['subSpecs'][0]['operator']; // '=' $fixed['field']['subSpecs'][0]['rightSubTerm']; // CK\MARCspec\ComparisonStringInterface echo $fixed['field']['subSpecs'][0]['rightSubTerm']; // '\a' echo $fixed['field']['subSpecs'][0]['rightSubTerm']['comparable']; // 'a' $fixed; // CK\MARCspec\MARCspecInterface echo $fixed; // '007[0]/1-8{007[0]/0=\a}' $variable = new MARCspec('245^1'); echo $variable['field']['tag']; // '245' echo $variable['indicator']; // CK\MARCspec\IndicatorInterface echo $variable['indicator']['position']; // '1' $variable; // CK\MARCspec\MARCspecInterface echo $variable; // '245^1' $complex = new MARCspec('020$a{$q[0]~\pbk}{$c/0=\€|$c/0=\$}'); echo $complex['field']['tag']; // '020' $complex['subfields']; // Array $complex['subfields'][0]['tag']; // CK\MARCspec\SubfieldInterface echo $complex['subfields'][0]['tag']; // 'a' $complex['a'][0]['subSpecs'][0]['leftSubTerm']; // CK\MARCspec\MARCspecInterface echo $complex['a'][0]['subSpecs'][0]['leftSubTerm']; // '020$q[0]' echo $complex['a'][0]['subSpecs'][0]['operator']; // '~' $complex['a'][0]['subSpecs'][0]['rightSubTerm']; // CK\MARCspec\ComparisonStringInterface echo $complex['a'][0]['subSpecs'][0]['rightSubTerm']['comparable']; // 'pbk' echo $complex['a'][0]['subSpecs'][1][0]['leftSubTerm']; // '020$c/0' echo $complex['a'][0]['subSpecs'][1][0]['leftSubTerm']['c'][0]['charStart']; // 0 echo $complex['a'][0]['subSpecs'][1][0]['leftSubTerm']['c'][0]['charEnd']; // 0 echo $complex['a'][0]['subSpecs'][1][0]['leftSubTerm']['c'][0]['charLength']; // 1 echo $complex['a'][0]['subSpecs'][1][0]['operator']; // '=' echo $complex['a'][0]['subSpecs'][1][0]['rightSubTerm']['comparable']; // '€' echo $complex['a'][0]['subSpecs'][1][1]['leftSubTerm']; // '020$c/0' echo $complex['a'][0]['subSpecs'][1][1]['leftSubTerm']['c'][0]['charStart']; // 0 echo $complex['a'][0]['subSpecs'][1][1]['leftSubTerm']['c'][0]['charEnd']; // 0 echo $complex['a'][0]['subSpecs'][1][1]['leftSubTerm']['c'][0]['charLength']; // 1 echo $complex['a'][0]['subSpecs'][1][1]['operator']; // '=' echo $complex['a'][0]['subSpecs'][1][1]['rightSubTerm']['comparable']; // '$' // creating MARCspec // creating a new Field $Field = new Field('...'); // creating a new MARCspec by setting the Field $MARCspec = MARCspec::setField($Field); // creating a new Subfield $Subfield = new Subfield('a'); // adding the Subfield to the MARCspec $MARCspec->addSubfields($Subfield); // creating instances of MARCspec and ComparisonString $LeftSubTerm = new MARCspec('...$a/#'); $RightSubTerm = new ComparisonString(','); // creating a new SubSpec with instances above and an operator '=' $SubSpec = new SubSpec($LeftSubTerm,'=',$RightSubTerm); // adding the SubSpec to the Subfield $Subfield['subSpecs'] = $SubSpec; // whole MARCspec echo $MARCspec; // '...[0]$a{...$a/#-#=\,}'
ArrayAccess vs. Methods
MARCspec can be accessed like an immutable array with the following offsets or with its correponding methods (see source code for documentation of all methods).
Instances of MARCspec
| offset | method get | method set | type |
|---|---|---|---|
| field | getField | setField | Field |
| subfields | getSubfields | addSubfields | array[Subfield] |
| [subfield tag] | getSubfield | array[Subfield] | |
| indicator | getIndicator | setIndicator | Indicator |
Instances of Field
| offset | method get | method set | type |
|---|---|---|---|
| tag | getTag | string | |
| charStart | getCharStart | setCharStart | int |
| charEnd | getCharEnd | setCharEnd | int |
| charLength | getCharLength | int | |
| indexStart | getIndexStart | setIndexStart | int |
| indexEnd | getIndexEnd | setIndexEnd | int |
| indexLength | getIndexLength | int | |
| subSpecs | getSubSpecs | addSubSpecs | array[SubSpec]|array[array[SubSpec]] |
Instances of Subfield
| offset | method get | method set | type |
|---|---|---|---|
| tag | getTag | string | |
| charStart | getCharStart | setCharStart | int |
| charEnd | getCharEnd | setCharEnd | int |
| charLength | getCharLength | int | |
| indexStart | getIndexStart | setIndexStart | int |
| indexEnd | getIndexEnd | setIndexEnd | int |
| indexLength | getIndexLength | int | |
| subSpecs | getSubSpecs | addSubSpecs | array[SubSpec]|array[array[SubSpec]] |
Instances of Indicator
| offset | method get | method set | type |
|---|---|---|---|
| position | getPos | string | |
| subSpecs | getSubSpecs | addSubSpecs | array[SubSpec]|array[array[SubSpec]] |
Instances of ComparisonString
| offset | method get | type |
|---|---|---|
| raw | getRaw | string |
| comparable | getComprable | string |
Instances of SubSpec
| offset | method get | type |
|---|---|---|
| leftSubTerm | getLeftSubTerm | MARCspec|ComparisonString |
| operator | getOperator | string |
| rightSubTerm | getRightSubTerm | MARCspec|ComparisonString |
统计信息
- 总下载量: 66.53k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 10
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-02-18