PHP实例:国际标准书号ISBN码校验函数
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-03-16
|
,背景知识介绍到这,下面我写的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; }
|
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|