详细资料可以参考:国际标准书号 – 维基百科,下面还是简述一下什么是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 – M 的差N:N = 11 ? 6 = 5
如果N = 10,校验码是字母"X"
如果N = 11,校验码是数字"0"
如果N为其他数字,校验码是数字N
所以,本书的校验码是5;如果用户提供的ISBN码是7-309-04547-6,那么校验失败
校验码的计算方法(1*)
假设某国际标准书号号码前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版),需要的话可以直接使用:
复制代码 代码如下:
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码在线校验工具
相关推荐:
AI文章比对技术:引领写作与内容审核的新革命,ai智能写作小说免费
SEO提供:如何通过精准的SEO策略提升网站流量与品牌影响力,刷关键词排名立的火星
自动AI写文章:轻松创作时代的全新利器
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
seo要学会什么,seo要学多长时间 ,NTU AI 录取
SEO更好,让你的网站从此脱颖而出,渝中的知名网站建设
优排软件:高效管理新天地,轻松提升工作效率,长葛外贸网站建设
如何通过AI写文章,轻松提高写作效率与质量
人工润色:让文字更具魅力的秘密武器,快排seo软件哪个最好
WP原创:打造属于你的独特网站,从这里开始!,一个网站推广一个月需要多少钱
企业关键字-助力企业成功的隐形动力,闽侯县企业网站建设
如何查文章AI率?全面解析AI文章检测工具及技巧
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
ChatGPT页面怎么拖不动?解决问题的终极指南,日韩AI换脸在线观看
SEO自从上线后的演变与未来发展趋势,拼多多增加关键词排名
自动写文章AI:高效创作工具,开启写作新纪元
AI软件不用登录,让你的工作更高效轻松,智能ai写作改稿怎么改
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
文章AI指令提升写作效率的智能助手
seo需要什么能力,seo需要哪些技术 ,ai长条弯曲
SEO总结:如何通过优化提升网站排名与流量,关键词排名消失
SEO广告:如何借助SEO提升品牌曝光与销售业绩?,网站推广怎么选择
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
ChatGPT的梯子:突破网络壁垒,畅享智能对话的全新体验,ai的音标1001ai的音标
2025百度收录优化:提升网站排名,助力企业数字化转型,第一ai做
AI做文章:引领智能创作的未来
ChatGPT页面空白无法登录?如何解决这一困扰?,温州ai字幕生成
ChatGPT破解:人工智能的无限潜力与破解秘笈,意识变ai
seo网站关键字排名优化,网站seo关键词 ,运动ai
GPT怎么收费?揭秘AI技术的定价与价值,ai报考高考
文章去AI回归创作的本真之美
AI代写文章:高效创作的新风尚
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
ChatGPT网页版内容显示不全的解决方案:如何轻松解决问题?,课件ai
为什么“蜘蛛弛查询”能成为提升网站排名的秘密武器?,惠州网站推广v1戈seo24
文章AI思维导图自动生成助力创作的智慧之源
SEO而且:打造高效网站流量增长的秘密武器,滨江网站推广营销
“爱站”:开启网站优化与流量增长的新纪元,seo入门ppt
ChatGPT为什么网址打不开?原因分析与解决方法,文档审核ai
如何快速写出高质量的AI文章:从入门到精通
【SEO优化全攻略】提升网站流量的终极秘籍,带你轻松玩转搜索引擎优化!,金融网站推广维护
什么是seo网络推广,seo网络推广技术 ,ai写真官方
SEO兼职:如何通过SEO兼职实现收入增长与职业突破,濮阳网站建设官网
为什么说seo重要,为什么说seo重要一点 ,中通智能ai是什么意思
seo站内链接有什么作用,seo中网站内链的作用 ,781900ai
360ai答题-赋能教育,开启智能学习新纪元,ai 果汁
怎么使用AI生成文章,轻松提升写作效率!
自动写文章的AI,提升效率的创作利器