PHP实现通过Luhn算法校验信用卡卡号是否有效
本文实例讲述了PHP实现通过Luhn算法校验信用卡卡号是否有效的方法。分享给大家供大家参考。具体实现方法如下:
$numbers="499273987164992739871712345678123456781234567812345670";
foreach(split('',$numbers)as$n)
echo"$nis",luhnTest($n)?'valid':'notvalid','</br>';
functionluhnTest($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;
}
运行结果
49927398716isvalid 49927398717isnotvalid 1234567812345678isnotvalid 1234567812345670isvalid
下面是一个更为简洁的代码:
functionluhn_test($num){
$str='';
foreach(array_reverse(str_split($num))as$i=>$c)$str.=($i%2?$c*2:$c);
returnarray_sum(str_split($str))%10==0;
}
foreach(array('49927398716','49927398717','1234567812345678','1234567812345670')as$n)
echo"$nis",luhn_test($n)?'valid':'notvalid',"</br>\n";
输出结果如下
49927398716isvalid 49927398717isnotvalid 1234567812345678isnotvalid 1234567812345670isvalid
希望本文所述对大家的php程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下