信用卡效验程序
author:一佰互联 2019-05-01   click:130
<?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);  }  ?>