This is a small PHP function to check for valid credit card numbers using the LUHN algorithm. This function doesn't check credit card prefix or length which could also be invalid, so you may want to add these checks.
- Code: Select all
<?
function validateCard($cardnumber)
{
$cardnumber=preg_replace("/\D|\s/", "", $cardnumber); # strip any non-digits
$cardlength=strlen($cardnumber);
$parity=$cardlength % 2;
$sum=0;
for ($i=0; $i<$cardlength; $i++)
{
$digit=$cardnumber[$i];
if ($i%2==$parity) $digit=$digit*2;
if ($digit>9) $digit=$digit-9;
$sum=$sum+$digit;
}
$valid = ($sum%10==0);
return $valid;
}
?>