|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后... 具体材料可以参考:国际尺度书号 C 维基百科,上面仍是简述一下甚么是ISBN码:
国际尺度书号(International Standard Book Number,ISBN;拟发音is-ben),是国际通用的图书或自力的出书物(除按期出书的期刊)代码。出书社可以经由过程国际尺度书号明晰的识别一切非期刊书本。一个国际尺度书号只要一个或一份响应的出书物与之对应。新版本假如在本来旧版的基本上没有内容上太大的变化,在出书时也不会失掉新的国际尺度书号码。当平装本改成平装本出书时,本来响应的国际尺度书号号码也应该发出。
平凡咱们可以见到的ISBN码有10位和13位两种,个中10位的ISBN自2007年1月起已中断利用,今朝新出书的图书ISBN码都是13位。思索到一个严谨的图书办理法式要思索到多方面的成绩,由于10位ISBN码的图书仍是有伟大的存世量的,所以要校验图书ISBN码的准确性,就必需同时思索10位和13位的情形。从维基百科可以懂得到ISBN码最初一名是校验码,其实要想校验ISBN码的准确,就是经由过程盘算ISBN的校验码,看是不是与最初一名吻合。这里所说的校验也只是校验ISBN在组成上是不是正当,而不会校验是不是为已刊行图书的ISBN。上面是维基百科供应的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 C 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 C M 的差N:N = 10 ? 4 = 6
假如N = 10,校验码是数字"0"
假如N为其他数字,校验码是数字N
所以,本书的校验码是6。完全的国际尺度书号号码为 ISBN 978-986-181-728-6
好了,后台常识引见到这,上面我写的ISBN码校验函数(php版),需求的话可以直接利用:
复制代码 代码以下:
function isbn_sum($isbn, $len)
{
/*
* 该函数用于盘算ISBN加权和
* 参数申明:
* $isbn : isbn码
* $len : isbn码长度
*/
$sum = 0;
if ($len == 10)
{
for ($i = 0; $i < $len-1; $i++)
{
$sum = $sum + (int)$isbn[$i] * ($len - $i);
}
}
elseif ($len == 13)
{
for ($i = 0; $i < $len-1; $i++)
{
if ($i % 2 == 0)
$sum = $sum + (int)$isbn[$i];
else
$sum = $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)
$rc = '0';
else
$rc = (string)$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;
$rc = isbn_compute($isbn, $len);
if ($isbn[$len-1] != $rc) /* ISBN尾数与盘算出来的校验码不符 */
return 0;
else
return 1;
}
函数写好后,就能够直接挪用了,上面是挪用示例:
复制代码 代码以下:
<?php echo is_isbn('9787507421781') ? '校验经由过程' : '校验掉败'; ?>
别的我写了一个在线校验ISBN的东西,利用该东西可以在线校验ISBN码的正当性,可以点击以下链接利用:ISBN码在线校验东西聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。 |
|