PHP实现通过Luhn算法校验信用卡卡号是否有效
2015-03-23 15:44
841 查看
本文实例讲述了PHP实现通过Luhn算法校验信用卡卡号是否有效的方法。分享给大家供大家参考。具体实现方法如下:
$numbers = "49927398716 49927398717 1234567812345678 1234567812345670"; foreach (split(' ', $numbers) as $n) echo "$n is ", luhnTest($n) ? 'valid' : 'not valid', '</br>'; function luhnTest($num) { $len = strlen($num); for ($i = $len-1; $i >= 0; $i--) { $ord = ord($num[$i]); if (($len - 1) & $i) { $sum += $ord; } else { $sum += $ord / 5 + (2 * $ord) % 10; } } return $sum % 10 == 0; }
运行结果
49927398716 is valid 49927398717 is not valid 1234567812345678 is not valid 1234567812345670 is valid
下面是一个更为简洁的代码:
$str = '';
foreach( array_reverse( str_split( $num ) ) as $i => $c ) $str .= ($i % 2 ? $c * 2 : $c );
return array_sum( str_split($str) ) % 10 == 0;
}
foreach (array('49927398716','49927398717','1234567812345678','1234567812345670') as $n)
echo "$n is ", luhn_test($n) ? 'valid' : 'not valid', "</br>\n";
输出结果如下
49927398716 is valid 49927398717 is not valid 1234567812345678 is not valid 1234567812345670 is valid
希望本文所述对大家的php程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- Go语言通过Luhn算法验证信用卡卡号是否有效的方法
- 信用卡必须是 13-16 位的整数串,它必须通过 Luhn 算法来验证通过才是合法的卡号。 Luhn 算法校验的过程是: • 从卡号最后一位数字开始,逆向将奇数位(1、3、5 等)相加。 • 从卡
- PHP中使用Luhn算法校验信用卡及借记卡卡号
- 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程:1、从卡号最后一位数字开始,逆
- 使用javascript实现银行卡号的Luhn校验或验证算法
- PHP中使用Luhn算法校验信用卡及借记卡卡号
- Python3通过Luhn算法快速验证信用卡卡号的方法
- Python3通过Luhn算法快速验证信用卡卡号的方法
- javascript实现银行卡号的Luhn验证或校验算法-简单易懂
- php检测银行卡号是否有效,能够校验16位或19位银行卡卡号。
- [PHP]算法- 判断是否为二叉搜索树的后序遍历序列的PHP实现
- Haskell作业|检查一个信用卡卡号是否有效
- 编写一个程序,验证从标准输入获得的信用卡号是否校验通过, 校验通过,则输出”成功“,校验未通过则输出”失败“。
- PHP验证信用卡卡号是否正确函数
- php+MySQL实现登录时去数据库校验用户输入的登录名和密码是否正确。。。(session的用法)
- Android luhn算法 银行卡号校验
- OJ刷题---信用卡号校验(Luhn算法)
- 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心, 因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。
- PHP验证信用卡卡号是否正确函数
- PHP验证信用卡卡号是否正确函数