当前位置: 首页 > 图文教程 > 网络编程 > PHP > 信用卡效验程序

PHP
用PHP生成html分页列表的代码
php中的session完全教程
PHP session常见问题集锦及解决办法总结
PHP 中dirname(_file_)讲解
PHP_MySQL教程-第一天
PHP_MySQL教程-第二天while循环与数据库操作
PHP_MySQL教程-第三天 基本函数
一篇不错的PHP基础学习笔记
PHP5中的this,self和parent关键字详解教程
phpMyAdmin 安装教程全攻略
PHP入门速成教程
php之字符串变相相减的代码
php中的实现trim函数代码
IIS6的PHP最佳配置方法
简单介绍下 PHP5 中引入的 MYSQLI的用途
php分页示例代码
生成静态页面的php函数,php爱好者站推荐
隐藏你的.php文件的实现方法
推荐一篇入门级的Class文章
PHP配置文件中最常用四个ini函数

PHP 中的 信用卡效验程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 209 ::
收藏到网摘: n/a

<?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);
}
?>