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

$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);

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值