PHP实例:国际标准书号ISBN码校验函数

  • 来源: 未知 作者: 老苏   2011-07-18/10:14
  • 所以,本书的校验码是6。完备的国际尺度书号号码为ISBN978-986-181-728-6

    国际尺度书号(InternationalStandardBookNumber,ISBN;拟收音is-ben),是国际通用的图书或自力的出书物(除按期出书的期刊)代码。出书社可以经过国际尺度书号清楚的识别所有非期刊册本。一个国际尺度书号只要一个或一份响应的出书物与之对应。新版本若是正在本来旧版的根底上出有内容上太年夜的变更,正在出书时也不会获得新的国际尺度书号码。当仄拆本改成精拆本出书时,本来响应的国际尺度书号号码也该当收出。

    若是N=11,校PHP实例:国际标准书号ISBN码校验函数验码是数字"0"

    若是N为其他数字,校验码是数字N

    若是N=10,校验码是字母"X"

    好了,布景常识先容到那,下里我写的ISBN码校验函数(php版),需要的话可以直接利用:

    校验码的计较圆式(10码)

    所以,本书的校验码是5;若是用户供给的ISBN码是7-309-04547-6,那末校验得利

    比来正在编写一个图书办理法式的时间,需要校验图书ISBN码准确性,查了一些材料,领会了图书ISBN码的组成,具体材料可以参考:国际尺度书号–维基百科,下里仍是简述一下甚么是ISBN码:

    计较加权和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=164mod10=4

    计较10–M的差N:N=10?4=6

    若是N=10,校验码是数字"0"

    校验码的计较圆式(13码)

    假定某国际尺度书号号码前12位是:978-986-181-728

    往常我们可以或许睹到的ISBN码有10位和13位两种,此中10位的ISBN自2007年1月起已截至利用,今朝新出书的图书ISBN码都是13位。思索到一个严谨的图书办理法式要思索到多圆里的题目,由于10位ISBN码的图书仍是有巨年夜的存世量的,所以要校验图书ISBN码的准确性,就必需同时思索10位和13位的环境。从维基百科可以领会到ISBN码最后一名是校验码,真正在要想校验ISBN码的准确,就是经过计较ISBN的校验码,看是不是与最后一名吻开。那里所说的校验也只是校验ISBN正在组成上是不是开法,而不会校验是不是为已刊行图书的ISBN。下里是维基百科供给的ISBN码校验算法:

    计较11–M的差N:N=11?6=5

    计较加权和S:S=7×10+3×9+0×8+9×7+0×6+4×5+5×4+4×3+7×2=226

    若是N为其他数字,校验码是数字N

    假定某国际尺度书号号码前9位是:7-309-04547

    计较S÷11的余数M:M=226mod11=6


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多