文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>信用卡效验程序

信用卡效验程序

时间:2007-02-17  来源:PHP爱好者

<?php  

////////////////////////////////////////////////////  
//                                                //   
// 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<$dblsz;$intI++){  
$add = toCharArray($dbl[$intI]);  
for ($intIntJ=0;$intIntJ<sizeof($add);$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<$len;$intIntJ++){  
$char[$intIntJ] = substr($intInput, $intIntJ, 1);      
}  
return ($char);  
}  

?>
php爱好者 站 http://www.phpfans.net 网页制作|网站建设|数据采集.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载