我正在使用 Luhn 算法进行信用卡验证:我只需要查看该号码是否是有效的信用卡号码。
$number=clean($_GET['number']);
if (LuhnCheck($number) == 0)
{
echo "credit card valid";
}
else
{
echo "invalid";
}
function LuhnCheck($strDigits)
{
$sum = 0;
$alt = false;
for($i = strlen($strDigits) - 1; $i >= 0; $i--)
{
if($alt)
{
$temp = $strDigits[$i];
$temp *= 2;
$strDigits[$i] = ($temp > 9) ? $temp = $temp - 9 : $temp;
}
$sum += $strDigits[$i];
$alt = !$alt;
}
return $sum % 10 == 0;
}
上述方法适用于 AMEX、discover、visa 和 mastercard 吗?我无法确认。