ホームページ  >  記事  >  バックエンド開発  >  PHP_PHPチュートリアルのISBNコードを検証する機能の詳細説明

PHP_PHPチュートリアルのISBNコードを検証する機能の詳細説明

WBOY
WBOYオリジナル
2016-07-20 11:10:581003ブラウズ

この記事では ISBN 認証方法について説明します。必要な学生は参考にしてください。厳格な図書館管理プログラムでは多くの側面を考慮する必要があることを考慮すると、10 桁の ISBN コードを持つ書籍が依然として膨大な数に存在するため、書籍の ISBN コードの正確性を検証するには、10 桁と ISBN コードの両方を考慮する必要があります。 13 桁の 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
Sの差Nを計算11 – 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 です

さて、予備知識としては以上です。以下は私が作成した ISBN コード検証機能 (php バージョン) です。必要に応じて直接使用できます。

コードは次のとおりですコードをコピー
/**

* 名前: ISBN コードを検証する PHP 関数
* 著者: Pandan
* 最終更新日: 2010 年 9 月 26 日
*/

function isbn_sum($isbn, $len)

{
/*
* * この関数は計算に使用されますISBN 加重和
* パラメータの説明 :
* $isbn : isbn コード
* $len : isbn コード長
*/
$sum = 0;

if ($len == 10)
{
for ($i = 0; $ len-1; $i] * 3;
return $sum; この関数は、ISBN の最後の桁のチェックコードを計算するために使用されます
* パラメーターの説明:
* $isbn: isbn コード
* $len: isbn コードの長さ
*/

if ( $len == 10)
{
$digit = 11 -isbn_sum($isbn, $len) % 11;

;
}
elles if($ len == 13)
$ digit $ rc =(string)$ digit; * この関数は、ISBN 番号であるかどうかを判断するために使用されます
* パラメータの説明:
* $isbn: isbn コード
*/
$len = strlen($isbn);

if ($len!=10 && $len !=13)

return 0;


$rc = isbn_compute($isbn, $len) ;

if ($isbn[$len-1] != $rc) /* ISBN 仮数部が計算されたチェックと一致しませんcode*/
else

return 0;

else
return 1;

}





関数 記述後、直接呼び出すことができます。 呼び出し例は次のとおりです。



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

コードをコピーします



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

http://www.bkjia.com/PHPjc/444685.htmlhttp://www.bkjia.com/PHPjc/444685.htmlこの記事では ISBN 認証方法について説明します。必要な学生は参考にしてください。厳格な図書館管理プログラムを考慮すると、10 桁の ISBN コードがあるため、多くの側面を考慮する必要があります...
www.bkjia.com tru​​e
技術記事

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。