php实现信用卡校验位算法THE LUHN MOD-10示例

 更新时间:2014年05月07日 10:38:27   作者:  
这篇文章主要介绍了php实现信用卡校验位算法THE LUHN MOD-10的示例,需要的朋友可以参考下

按照ISO 2894中支付卡校验位的算法 The Luhn Mod-10 Method 规定:

1、对卡号上的每位数字乘以权重。其规则是,如果卡号数字个数是偶数,则第一位乘以2,否则就乘以1,然后以后分别是,1,2,1,2,1,2;
2、如果每位数字乘以权重后超过9 ,则需要减去 9;
3、将所有的处理过的加权数字求和,用 数字 10 求模运算;
4、余数应该是0,否则可能是输入错误。也可能是一个假号。
 顺手PHP简单实现下,实际场景前端验证好一些,例如JS。

 

复制代码 代码如下:

 function check_card($card){ 
    if (!is_numeric($card)) return False; 
    $card_len = strlen($card); 
    $i = 0; 
    $num_i = array(); 
    do{ 
        if (!$i){ 
            $num_x = $card_len % 2 ? 1 : 2; 
        } else { 
            $num_x = $num_x == 1 ? 2 : 1;     
        } 
        $num_i[$i] = (int)$card[$i] * $num_x; 
        $num_i[$i] = $num_i[$i] > 9 ? $num_i[$i] - 9 : $num_i[$i]; 

    }while(isset($card[++$i])); 
    $num_sum = array_sum($num_i); 
    return $num_sum % 10 ? False : True; 

 

相关文章

  • thinkphp命名空间用法实例详解

    thinkphp命名空间用法实例详解

    这篇文章主要介绍了thinkphp命名空间用法,结合实例形式详细分析了thinkPHP命名空间的功能及具体使用技巧,需要的朋友可以参考下
    2015-12-12
  • ThinkPHP实现事务回滚示例代码

    ThinkPHP实现事务回滚示例代码

    这篇文章主要介绍了ThinkPHP实现事务回滚,需要的朋友可以参考下
    2014-06-06
  • php实现的太平洋时间和北京时间互转的自定义函数分享

    php实现的太平洋时间和北京时间互转的自定义函数分享

    这篇文章主要介绍了php实现的太平洋时间和北京时间互转的自定义函数分享,主要靠date_default_timezone_set函数来实现,需要的朋友可以参考下
    2014-08-08
  • PHP检查URL包含特定字符串实例方法

    PHP检查URL包含特定字符串实例方法

    在本篇文章里,小编给大家分享了使用PHP检查URL是否包含特定字符串的相关操作方法,有需要的朋友们学习下。
    2019-02-02
  • 用Php编写注册后Email激活验证的实例代码

    用Php编写注册后Email激活验证的实例代码

    通过使用Email验证激活的方法,可以有效的帮你阻止恶意的Spam和注册机器人的访问。 用php编写注册后Email验证激活的步骤非常简单,相信几分钟之内你就能学会。
    2013-03-03
  • Thinkphp整合阿里云OSS图片上传实例代码

    Thinkphp整合阿里云OSS图片上传实例代码

    kphp3.2整合阿里云OSS图片上传实例,图片上传至OSS可减少服务器压力,节省宽带,安全又稳定,阿里云OSS对于做负载均衡非常方便,不用传到各个服务器了,本文通过实例代码给大家介绍,需要的朋友一起看看吧
    2019-04-04
  • Drupal读取Excel并导入数据库实例

    Drupal读取Excel并导入数据库实例

    这篇文章主要介绍了Drupal利用PHPExcel读取Excel并导入数据库的例子,需要的朋友可以参考下
    2014-03-03
  • Yii2框架控制器、路由、Url生成操作示例

    Yii2框架控制器、路由、Url生成操作示例

    这篇文章主要介绍了Yii2框架控制器、路由、Url生成操作,结合实例形式分析了Yii2框架控制器、路由、url生成跳转等相关原理及操作技巧,需要的朋友可以参考下
    2019-05-05
  • Yii2实现ajax上传图片插件用法

    Yii2实现ajax上传图片插件用法

    这篇文章主要介绍了Yii2实现ajax上传图片插件用法,结合实例形式分析了Yii上传图片插件的具体使用方法,需要的朋友可以参考下
    2016-04-04
  • laravel 5.4中实现无限级分类的方法示例

    laravel 5.4中实现无限级分类的方法示例

    最近在工作中遇到一个需求,是要在laravel 5.4中实现无限级分类,但发现网上这个的资料较少,所以只能自己来实现了,下面这篇文章主要给大家介绍了关于在laravel 5.4中实现无限级分类的方法示例,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07

最新评论