标签:
Luhn算法
1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。
2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。
3、将奇数位总和加上偶数位总和,结果应该可以被10整除。
function checkCard($card)
{
$num = 0;
$card = str_split(trim($card));
krsort($card);
$i = 1;
foreach($card as $val){
if ($i % 2) {//奇数
$num += $val;
} else {//偶数
$n = $val * 2;
if ($n > 9) $n -= 9;
$num += $n;
}
$i++;
}
return (($num % 10) == 0);
}
标签:
原文地址:http://my.oschina.net/tanwen/blog/520743