fdt2k/isbn

用于转换和验证ISBN的PHP库

2.5.0 2022-01-10 00:00 UTC

README

tests Latest Stable Version Total Downloads License Gitpod ready-to-code

biblys/isbn可用于

  • 验证字符串是否符合ISBN-10、ISBN-13和EAN-13格式
  • 转换ISBN到ISBN-10、ISBN-13、EAN-13、GTIN-14和ISBN-A/DOI格式
  • 解析ISBN并提取登记机构、出版社代码、出版代码、校验和等

变更日志

安装

要求

  • PHP 7.x

如果您需要支持PHP 8,请参阅下一个分支

使用composer安装

composer require biblys/isbn:^2.5.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的信息

开发

使用Gitpod

您可以通过点击Gitpod ready-to-code来启动开发环境,并在浏览器中立即开始编码!

本地

如果您想设置本地开发环境,您将需要

  • 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机构有时会不时添加新的ISBN范围。每次发生这种情况时,此库都必须更新。如果需要范围更新,请请在GitHub上提交问题。您也可以在更新范围后提交拉取请求,以下命令可用于更新范围

composer install
composer run update-ranges

或使用Docker容器

composer docker:update-ranges

变更日志

查看GitHub发行版