信用卡效验程序


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 cron中的批处理
Sep 16 PHP
php session 错误
May 21 PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 PHP
php实现的错误处理封装类实例
Jun 20 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
python中随机函数random用法实例
2015/04/30 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
vscode 远程调试python的方法
2017/12/01 Python
tensorflow识别自己手写数字
2018/03/14 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
公司周年庆活动方案
2014/08/25 职场文书
导游欢送词
2015/01/31 职场文书
个人德育工作总结
2015/03/05 职场文书
php访问对象中的成员的实例方法
2021/11/17 PHP