信用卡效验程序


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 相关文章推荐
在JavaScript中调用php程序
Mar 09 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
php批量缩放图片的代码[ini参数控制]
Feb 11 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
PHP中feof()函数实例测试
Aug 23 PHP
phpstorm配置Xdebug进行调试PHP教程
Dec 01 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
php DES加密算法实例分析
Sep 18 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
Thinkphp极验滑动验证码实现步骤解析
Nov 24 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中使用Oracle数据库(3)
2006/10/09 PHP
php一个找二层目录的小东东
2012/08/02 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
JavaScript闭包详解
2015/02/02 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
财务会计自荐信范文
2014/02/21 职场文书
结婚喜宴主持词
2014/03/14 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python