//检查是否为银行卡
if (!function_exists('isBankNo')){
function isBankNo($banknumber){
if ($banknumber == null || $banknumber == ""){
return false;
}
//取出最后一位
$last = substr($banknumber,(strlen($banknumber) - 1), 1);
//前15或18位
$front_last = substr($banknumber,0, strlen($banknumber) - 1);
$front_arr = Array();
//将前置部分号码存入数组(前15或18位)
$i= strlen($front_last) - 1;
for ($i ; $i > -1; $i--) {
//前15或18位倒序存进数组
array_push($front_arr,substr($front_last,$i, 1));
}
$sum1 = $sum2 = $sum3 = 0;
for ($j = 0; $j < count($front_arr); $j++) {
if (($j + 1) % 2 == 1) {
// 奇数数字和
if (intval ($front_arr[$j]) * 2 < 9) {
$sum1 += intval($front_arr[$j]) * 2;
} else {
$str = intval($front_arr[$j]) * 2;
$str1 = 1;
$str2 = $str % 10;
$sum2 += $str1;
$sum2 += $str2;
}
} else {
// 偶数数字和
$sum3 += intval($front_arr[$j]);
}
}
$sum = $sum1 + $sum2 + $sum3;
$luhn = $sum % 10 == 0 ? 0 : 10 - $sum % 10;
if ($luhn == intval($last)) {
return true;
} else {
return false;
}
}
}
//检查是否为银行卡
if (!function_exists('isBankNo')){
function isBankNo($banknumber){
if ($banknumber == null || $banknumber == ""){
return false;
}
//取出最后一位
$last = substr($banknumber,(strlen($banknumber) - 1), 1);
//前15或18位
$front_last = substr($banknumber,0, strlen($banknumber) - 1);
$front_arr = Array();
//将前置部分号码存入数组(前15或18位)
$i= strlen($front_last) - 1;
for ($i ; $i > -1; $i--) {
//前15或18位倒序存进数组
array_push($front_arr,substr($front_last,$i, 1));
}
$sum1 = $sum2 = $sum3 = 0;
for ($j = 0; $j < count($front_arr); $j++) {
if (($j + 1) % 2 == 1) {
// 奇数数字和
if (intval ($front_arr[$j]) * 2 < 9) {
$sum1 += intval($front_arr[$j]) * 2;
} else {
$str = intval($front_arr[$j]) * 2;
$str1 = 1;
$str2 = $str % 10;
$sum2 += $str1;
$sum2 += $str2;
}
} else {
// 偶数数字和
$sum3 += intval($front_arr[$j]);
}
}
$sum = $sum1 + $sum2 + $sum3;
$luhn = $sum % 10 == 0 ? 0 : 10 - $sum % 10;
if ($luhn == intval($last)) {
return true;
} else {
return false;
}
}
}