信用卡效验程序


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 park、unpark、ord 函数使用方法(二进制流接口应用实例)
Oct 19 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
php无限遍历目录示例
Feb 21 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
smarty模板引擎之内建函数用法
Mar 30 PHP
php备份数据库类分享
Apr 14 PHP
php中动态变量用法实例
Jun 10 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
浅谈php调用python文件
Mar 29 PHP
使用laravel的migrate创建数据表的方法
Sep 30 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
PHP的宝库目录--PEAR
2006/10/09 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue实现循环切换动画
2018/10/17 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
Python 中导入csv数据的三种方法
2018/11/01 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python识别html主要文本框过程解析
2020/02/18 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
动物科学专业毕业生的自我评价
2013/11/29 职场文书
现场施工员岗位职责
2014/03/10 职场文书
介绍信的写法
2015/01/31 职场文书
中学教代会开幕词
2016/03/04 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书