ホームページ >バックエンド開発 >PHPチュートリアル >gisele Bundchen ISBN コードを検証するための PHP 関数コード
詳細については、次を参照してください: 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の差Nを計算します– M: 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 ? 4 = 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;
関数を作成した後、直接呼び出すことができます。
コードをコピーします
コードは次のとおりです: