PHP校验ISBN码的函数代码
2011-01-17 18:30
162 查看
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校验ISBN码的函数代码
- php下过滤html代码的函数 提高程序安全性
- php fputcsv() 函数csv数据读写数据库文件代码
- 通用的PHP防注入漏洞攻击的过滤函数代码
- PHP验证码函数代码(简单实用)
- PHP代码安全【PHP弱口令、加密函数、绕过函数】/CTF代码审计题
- php 正则字符串中外部链接代码函数
- php URL编码解码函数代码
- PHP验证码函数代码(简单实用)
- PHP 清除HTML代码、空格、回车换行符的函数
- php中将汉字转换成拼音的函数代码
- php 数组处理函数extract详解及实例代码
- php json_encode()函数返回json数据实例代码
- PHP输出时间差函数代码
- https_post提交(PHP代码函数)
- 根据URL判断是否本地局域网访问(PHP代码函数)
- 获取图片绝对路径 采集图片用到(PHP代码函数)
- 获取当前URL(PHP代码函数)
- 解析PHP留言本模块主要功能的函数说明(代码可实现)