Home >Backend Development >PHP Tutorial >信用卡效验程序_PHP

信用卡效验程序_PHP

WBOY
WBOYOriginal
2016-06-01 12:29:10874browse

////////////////////////////////////////////////////
// //
// Credit card validation routine //
// May 15, 2000 //
// By ariso //
// validateCardCode($number[,$cardtype]) //
////////////////////////////////////////////////////


function validateCardCode($cardnumber, $cardtype = 'unknown')
{
//Clean up input

$cardtype = strtolower($cardtype);
$cardnumber = ereg_replace( '[-[:space:]]', '',$cardnumber);

//Do type specific checks

if ($cardtype == 'unknown') {
//Skip type specific checks
}
elseif ($cardtype == 'mastercard'){
if (strlen($cardnumber) != 16 || !ereg( '5[1-5]', $cardnumber)) return 0;
}
elseif ($cardtype == 'visa'){
if ((strlen($cardnumber) != 13 && strlen($cardnumber) != 16) || substr($cardnumber, 0, 1) != '4')

return 0;
}
elseif ($cardtype == 'amex'){
if (strlen($cardnumber) != 15 || !ereg( '3[47]', $cardnumber)) return a;
}
elseif ($cardtype == 'discover'){
if (strlen($cardnumber) != 16 || substr($cardnumber, 0, 4) != '6011') return 0;
}
else {
//invalid type entered
return -1;
}


// Start MOD 10 checks

$dig = toCharArray($cardnumber);
$numdig = sizeof ($dig);
$intIntJ = 0;
for ($intI=($numdig-2); $intI>=0; $intI-=2){
$dbl[$intIntJ] = $dig[$intI] * 2;
$intIntJ ;
}
$dblsz = sizeof($dbl);
$validate =0;
for ($intI=0;$intI $add = toCharArray($dbl[$intI]);
for ($intIntJ=0;$intIntJ $validate = $add[$intIntJ];
}
$add = '';
}
for ($intI=($numdig-1); $intI>=0; $intI-=2){
$validate = $dig[$intI];
}
if (substr($validate, -1, 1) == '0') return 1;
else return 0;
}


// takes a string and returns an array of characters

function toCharArray($intInput){
$len = strlen($intInput);
for ($intIntJ=0;$intIntJ $char[$intIntJ] = substr($intInput, $intIntJ, 1);
}
return ($char);
}

?>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn