php 10位isbn 13位isbn 的相互转换
来源:互联网 发布:黑大网络教学平台 编辑:程序博客网 时间:2024/05/16 08:09
由 2007 年 1 月 1 日 起 , 国 际 标 准 书 号 ﹝ 下 简称书号﹞的格 式 会 由 10 位 修 订 为 13 位 。 是 次 修 订 的 主 要 目 的 ,是增加国际标 准 书 号 系 统 的 容 量 , 以 及 令 国 际 标 准书号能够 与应 用于 其 他 货 品 和 供 应 链 的 13 位 国 际 货 品编码 (EAN-13) 完 全相 容 。
ISBN13位转化ISBN号10位的方法步骤
1:去掉条码号的前3位和最后1位,即为10位isbn号的前9位
2:10位isbn号的最后1位为校验码,校验码的计算方法:isbn号的10位按位序分别乘以10、9、8、7、6、5、4、3、2,积的和应是11的倍数(有余数)。
如:13位ISBN “9787810872102”转化为10位ISBN,去掉前三位978和最后一位2,得到一个9位数781087210,然后10*7+9*8+8*1+7*0+6*8+5*7+4*2+3*1+2*0=244,
244/11的余数为2,11-2=9,所以校验码为9。9即使最后一位,因此13位ISBN “9787810872102”转化的10位ISBN为“7810872109”
ISBN13位转化ISBN号10位的方法步骤
1:去掉条码号的前3位和最后1位,即为10位isbn号的前9位
2:10位isbn号的最后1位为校验码,校验码的计算方法:isbn号的10位按位序分别乘以10、9、8、7、6、5、4、3、2,积的和应是11的倍数(有余数)。
如:13位ISBN “9787810872102”转化为10位ISBN,去掉前三位978和最后一位2,得到一个9位数781087210,然后10*7+9*8+8*1+7*0+6*8+5*7+4*2+3*1+2*0=244,
244/11的余数为2,11-2=9,所以校验码为9。9即使最后一位,因此13位ISBN “9787810872102”转化的10位ISBN为“7810872109”
当余数为0时,校验码为 0,余数为1时,补数为10,此时用符号X代替。
<?phpclass Ezphp_Tool_ISBN{ public static function to10($isbn) { $isbn = str_replace('-', '', $isbn); if(!preg_match('/^\d+x?$/i', $isbn)){ return null; } if(strlen($isbn) == 10){ return $isbn; } $sum = 0; $num = substr($isbn, 3, 9); for($i = 10, $p = 0; $i > 1; $i--, $p++){ $sum += $i * intval($num[$p]); } $m = $sum % 11; $check = 11 - $m; if($check == 10){ $check = 'x'; } if($check == 11){ $check = '0'; } return $num . $check; } public static function to13($isbn) { $isbn = str_replace('-', '', $isbn); if(!preg_match('/^\d+x?$/i', $isbn)){ return null; } if(strlen($isbn) == 13){ return $isbn; } $sum = 0; $num = '978' . substr($isbn, 0, 9); for($i = 0; $i < 12; $i++){ $n = $num[$i]; if(($i + 1) % 2 == 0){ $sum += $n * 3; }else{ $sum += $n; } } $m = $sum % 10; $check = 10 - $m; return $num . $check; } }
- php 10位isbn 13位isbn 的相互转换
- ISBN 10位编号转换成13位的C#算法
- ISBN 10位校验码的计算方法
- ISBN 13位与10位互转函数
- 将13位图书条码转换为ISBN-10(2007年以前图书)的方法
- Python ISBN号概述,校验位计算,10位-13位转换,验证,连字符,及常用库isbnid,isbnlib,isbntools的使用
- 将10位ISBN加-区分国家码-出版社编码-图书编号,最终为13位
- ISBN
- ISBN
- isbn
- ISBN
- ISBN
- ISBN
- ISBN从10位升为13位,执行日期为2007年1月1日
- ISBN、一个18位身份证和计算信用卡(Luhns)的算法
- PHP校验ISBN码的函数
- PHP校验ISBN码的函数
- ISBN转换条码公式
- 解决flash背景透明问题
- Mac 热键大全
- [水晶报表]之打印条码
- asp.net中GridView、DataGrid、DataList、Repeater、ListView、DetailsView、FormView 的区别
- 对iphone应用程序加载图像的工具类 ImageHelper
- php 10位isbn 13位isbn 的相互转换
- 【观点】Quora正处在危险的边缘
- 提取vector容器中的值
- Si.qianjia.com千家IT服务商
- 状态栏中实现进度条
- 智能提示功能,类baidu等关键字弹出提示。
- Infragistics:WebDataGrid 行加背景样式
- Kies upgrade to latest.
- 当ScrollView遭遇ListView & Webview progress bar