biblys / isbn
一个用于转换和验证ISBN的PHP库
3.0.0
2022-11-26 00:00 UTC
Requires
- php: ^7.2 || ^8.0
Requires (Dev)
- ext-json: *
- ext-simplexml: *
- guzzlehttp/guzzle: ^6.2
- phpunit/phpunit: ^6 || ^7 || ^8
- dev-next
- dev-main
- 3.0.0
- 3.0.0-alpha.3
- 3.0.0-alpha.2
- 3.0.0-alpha.1
- 2.6.0
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- dev-add-custom-exceptions
- dev-legacy
- dev-release/3.1.0
- dev-renovate/actions-checkout-4.x
- dev-renovate/configure
- dev-renovate/guzzlehttp-guzzle-7.x
- dev-renovate/phpunit-phpunit-11.x
This package is auto-updated.
Last update: 2024-09-24 07:00:43 UTC
README
biblys/isbn 可以用来
- 验证 字符串是否符合ISBN-10、ISBN-13和EAN-13格式
- 转换 ISBN到ISBN-10、ISBN-13、EAN-13、GTIN-14和ISBN-A/DOI格式
- 解析 ISBN以提取注册机构、出版社代码、出版代码、校验码等。
安装
- 要求:PHP 7.2或更高版本
使用composer安装
composer require biblys/isbn:~3.0
使用方法
转换
用例:将EAN(9782843449499)转换为ISBN-13(978-2-84344-949-9)。
<?php use Biblys\Isbn\Isbn; try { $input = "9782843449499"; $isbn13 = Isbn::convertToIsbn13($input); echo "ISBN-13: $isbn13"; // Prints ISBN-13: 978-2-84344-949-9 } catch(Exception $e) { echo "An error occurred while attempting to format ISBN $input: ".$e->getMessage(); }
所有格式化方法
Isbn::convertToIsbn10
Isbn::convertToIsbn13
Isbn::convertToEan13
Isbn::convertToGtin14
Isbn::convertToIsbnA
验证
用例:验证一个格式不正确的ISBN-13(978-2-843-44949-9,应为978-2-84344-949-9)。
<?php use Biblys\Isbn\Isbn; try { $input = "978-2-843-44949-9"; Isbn::validateAsIsbn13($input); echo "ISBN $input is valid!"; } catch(Exception $e) { // Will throw because third hyphen is misplaced echo "ISBN $input is invalid: ".$e->getMessage(); }
所有验证方法
Isbn::validateAsIsbn10
Isbn::validateAsIsbn13
Isbn::validateAsEan13
Isbn::isParsable
解析
用例:从一个ISBN中提取出版社代码。
<?php use Biblys\Isbn\Isbn; $input = "9782956420132"; $isbn = Isbn::parse($input); echo $isbn->getRegistrantElement(); // Prints "9564201"
Isbn::parse
返回一个实现以下方法的 ParsedIsbn
对象
ParsedIsbn->getGs1Element
:: EAN产品代码ParsedIsbn->getRegistrationGroupElement
: 国家、地理区域或语言区域代码ParsedIsbn->getRegistrantElement
: 出版社(或组内的印刷商)代码ParsedIsbn->getPublicationElement
: 出版代码ParsedIsbn->getCheckDigit
: 用于验证的校验码
开发
使用Gitpod
您可以通过点击来启动开发环境,并在浏览器中立即开始编写代码!
本地
如果您想设置本地开发环境,您需要
- PHP 7.x
- Composer
- (可选) Docker以在不同的PHP版本上运行测试和调试
克隆此存储库并运行 composer install
以开始!
测试
使用PHPUnit运行测试
composer install composer test
在docker容器中运行测试
composer docker:test
使用特定PHP版本在docker容器中运行测试
PHP_VERSION=7.1 composer docker:test
ISBN范围更新
国际ISBN组织(International ISBN Agency)有时会添加新的ISBN范围。每次发生这种情况时,都必须更新此库。如果需要范围更新,请在GitHub上打开一个问题。您也可以在自行更新范围后打开拉取请求,使用以下命令
composer install composer run update-ranges
或使用docker容器
composer docker:update-ranges