最近、図書館管理プログラムを作成していたときに、書籍の ISBN コードが正しいことを確認する必要があり、いくつかの情報を確認し、書籍の ISBN コードの構成について学びました。詳細については、「国際標準」を参照してください。書籍番号 – Wikipedia ISBN コードについて簡単に説明します。
国際標準書籍番号 (ISBN、発音は「is-ben」であることを意図しています) は、書籍または独立した出版物 (定期的に発行される雑誌を除く) に対して国際的に受け入れられているコードです。出版社は、国際標準図書番号によって、ジャーナル以外のすべての書籍を明確に識別できます。 ISBN には、それに対応する対応出版物が 1 つだけあります。新しいバージョンが元の古いバージョンに基づいて内容に大きな変更がない場合、発行時に新しい ISBN 番号は付与されません。出版のためにペーパーバック版をハードカバー版に変更する場合、元の対応する ISBN 番号も削除する必要があります。
私たちが普段目にするISBNコードは10桁と13桁です 2007年1月から10桁のISBNコードは廃止され、現在新刊書籍のISBNコードはすべて13桁です。厳格な図書館管理プログラムでは多くの側面を考慮する必要があることを考慮すると、10 桁の ISBN コードを持つ書籍が依然として膨大な数に存在するため、書籍の ISBN コードの正確性を検証するには、10 桁と ISBN コードの両方を考慮する必要があります。 13 桁の ISBN コード。 Wikipedia から、ISBN コードの最後の桁がチェック コードであることがわかります。実際、ISBN コードの精度を確認したい場合は、ISBN のチェック コードを計算して、ISBN コードが一致するかどうかを確認する必要があります。最後の桁。ここで言及する検証は、ISBN が構成において合法であるかどうかを検証するだけであり、出版された書籍の ISBN であるかどうかは検証しません。以下は、Wikipedia が提供する ISBN コード検証アルゴリズムです:
チェックコード(10桁)の計算方法
ISBN 番号の最初の 9 桁が 7-309-04547 であるとします
加重和Sを計算します: S = 7×10+3×9+0×8+9×7+0×6+4×5+5×4+4×3+7×2 = 226
S÷11の余りMを計算します: M = 226 mod 11 = 6
11 – M の差 N を計算します: N = 11 ? = 5
N = 10の場合、チェックコードは文字「X」です
N = 11の場合、チェックコードは数字「0」です
Nが別の数値の場合、チェックコードは数値Nになります
つまり、この本のチェック コードは 5 です。ユーザーが指定した ISBN コードが 7-309-04547-6 の場合、チェックは失敗します
チェックコード(13桁)の計算方法
ISBN 番号の最初の 12 桁が 978-986-181-728 であると仮定します
加重合計 S を計算します: S = (9×1)+(7×3)+(8×1)+(9×3)+(8×1)+(6×3)+(1×1) + (8×3)+(1×1)+(7×3)+(2×1)+(8×3) = 164
S÷10の余りMを計算します: M = 164 mod 10 = 4
10 – M の差 N = 10 ? を計算します
N = 10の場合、チェックコードは数字「0」です
Nが別の数値の場合、チェックコードは数値Nになります
ということで、この本のチェックコードは6です。完全な国際標準図書番号は ISBN 978-986-181-728-6 です
これで予備知識は終わりです。以下は私が作成した ISBN コード検証関数 (php バージョン) です。必要に応じて直接使用できます。
関数isbn_sum($isbn, $len) if ($digit == 10) if ($digit == 10) |
関数を作成した後、それを直接呼び出すことができます。以下は呼び出し例です。