信用卡效验程序


Posted in PHP onOctober 09, 2006

<?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 相关文章推荐
PHP 模板高级篇总结
Dec 21 PHP
PHP 源代码压缩小工具
Dec 22 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
PHP curl 并发最佳实践代码分享
Sep 05 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
php去除头尾空格的2种方法
Mar 16 PHP
Yii2 assets清除缓存的方法
May 16 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
浅谈php中变量的数据类型判断函数
Mar 04 PHP
thinkPHP5.0框架命名空间详解
Mar 18 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
用文本文件实现的动态实时发布新闻的程序
Oct 09 #PHP
构建简单的Webmail系统
Oct 09 #PHP
如何删除多级目录
Oct 09 #PHP
用PHP实现多级树型菜单
Oct 09 #PHP
PHP4在Windows2000下的安装
Oct 09 #PHP
模仿OSO的论坛(五)
Oct 09 #PHP
基于mysql的论坛(2)
Oct 09 #PHP
You might like
星际争霸任务指南——虫族
2020/03/04 星际争霸
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
PHP 柱状图实现代码
2009/12/04 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
关于JS字符串函数String.replace()
2013/04/07 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python字典基本操作实例分析
2015/07/11 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
UNIX文件名称有什么规定
2013/03/25 面试题
雪山饭庄的创业计划书范文
2014/01/18 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
人力资源求职信
2014/05/25 职场文书
护理专业求职信
2014/06/15 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
JS class语法糖的深入剖析
2022/07/07 Javascript