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程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短