ホームページ  >  記事  >  バックエンド開発  >  ISBN コードを検証するための PHP 関数コード_PHP チュートリアル

ISBN コードを検証するための PHP 関数コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:32:23763ブラウズ

詳細については、次を参照してください: International Standard Book Number – Wikipedia ISBN コードとは何かについて簡単に説明します:
International Standard Book Number (ISBN; 発音はイスベン) は、国際的に受け入れられている書籍、または独立出版物 (定期的に発行される定期刊行物を除く) コード。出版社は、国際標準図書番号によって、ジャーナル以外のすべての書籍を明確に識別できます。 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 桁) の計算方法
国際標準書籍番号の最初の 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? 6 = 5
N = 10 の場合、チェック ディジットは文字「X」です
N = 11 の場合、チェック ディジットは数字「0」です
N が別の場合番号、チェック ディジットは番号 N です
つまり、この本のチェック コードは 5、ユーザーが提供した ISBN コードが 7-309-04547-6 の場合、検証は失敗します
チェック コードの計算方法 (13)
国際標準図書番号の最初の 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を計算します: N = 10 = 6
N = 10の場合、チェックデジットは数字「0」です
Nが別の数字の場合、チェックデジットは数字Nです
つまり、この本のチェックコードは6です。完全な国際標準図書番号は ISBN 978-986-181-728-6 です
予備知識としては以上です。必要に応じて直接使用できます。

コードをコピーします コードは次のとおりです:
function isbn_sum($isbn, $len)
{
/*
* この関数は、ISBN 加重和を計算するために使用されます
* パラメーターの説明:
* $isbn:isbnコード
* $ len:isbnコード長
*/
$sum = 0;
if ($len == 10)
{
for ($i = 0; $i {
$sum = $sum + (int)$isbn[$i] * ($len - $i)
}
}
elseif ($len == 13)
{
for ($i) = 0; $ len-1; $i++)
if ($i % 2 == 0)
$sum = $sum + (int)$isbn[$i]; = $sum + (int)$isbn[$i] * 3;
}
}
return $sum;
function isbn_compute($isbn, $len)
{
/*
* この関数は次の計算に使用されます。 ISBN 最後の桁のチェック コード
* パラメーターの説明:
* $isbn: isbn コード
* $len: isbn コードの長さ
*/
if ($len == 10)
{
$digit = 11 -isbn_sum($isbn) , $len) % 11;
if ($digit == 10)
$rc = 'X';
else if ($digit == 11)
else
$rc = (文字列) )$digit;
}
else if ($len == 13)
{
$digit = 10 - isbn_sum($isbn, $len) % 10;
if ($digit == 10)
$rc = '0 ';
else
$rc = ( string)$digit;
}
return $rc;
function is_isbn($isbn)
{
/*
* この関数は、ISBN 番号であるかどうかを判断するために使用されます。 * パラメータの説明:
* $isbn: isbn コード
*/
$len = strlen($isbn);
if ($len!=10 && $len!=13)
return 0; isbn, $len);
if ($isbn[ $len-1] != $rc) /* ISBN の仮数が計算されたチェック コードと一致しません*/
else
return 1;
関数を作成した後、直接呼び出すことができます:



コードをコピーします

コードは次のとおりです:



さらに、オンライン ISBN 検証ツールを作成しました。このツールを使用して、ISBN コードの正当性をオンラインで検証できます。次のリンクをクリックして使用できます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/322828.html技術記事詳細については、国際標準図書番号 – Wikipedia を参照してください。ISBN コードについて簡単に説明します。国際標準図書番号 (ISBN; 発音することを目的としています...
)。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。