信用卡效验程序_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); 

?>  

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3