身份证方面的函数

大五五8

大五五8

2016-02-19 22:46

下面,图老师小编带您去了解一下身份证方面的函数,生活就是不断的发现新事物,get新技能~

写了几个身份证方面的函数,个人感觉挺有用的,特别是在网络问卷调查时,对个人信息里的身份证进行验证很有用,但是应者寥寥,还是收在自己的blog里算了。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

// 计算身份证校验码,根据国家标准GB 11643-1999
function idcard_verify_number($idcard_base){
   if (strlen($idcard_base) != 17){ return false; }

   // 加权因子
   $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
   
   // 校验码对应值
   $verify_number_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');

   $checksum = 0;
   for ($i = 0; $i strlen($idcard_base); $i++){
       $checksum += substr($idcard_base, $i, 1) * $factor[$i];
   }

   $mod = $checksum % 11;
   $verify_number = $verify_number_list[$mod];

   return $verify_number;

}

// 将15位身份证升级到18位
function idcard_15to18($idcard){
   if (strlen($idcard) != 15){
       return false;
   }else{
       // 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码
       if (array_search(substr($idcard, 12, 3), array('996', '997', '998', '999')) !== false){
           $idcard = substr($idcard, 0, 6) . '18'. substr($idcard, 6, 9);
       }else{
           $idcard = substr($idcard, 0, 6) . '19'. substr($idcard, 6, 9);
       }
   }

   $idcard = $idcard . idcard_verify_number($idcard);

   return $idcard;
}

// 18位身份证校验码有效性检查
function idcard_checksum18($idcard){
   if (strlen($idcard) != 18){ return false; }
   $idcard_base = substr($idcard, 0, 17);

   if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1))){
       return false;
   }else{
       return true;
   }
}


    其中的$idcard_base是指身份证中的本位码,本位码是18位身份证里才有的,也就是18位身份证的前17位,最后一位称为校验码
    一般在使用的时候不用直接调用idcard_verify_number(),平时的应用大多是使用后两个函数
这些函数都没有关心身份证字符串的格式问题,在调用前自行进行格式检查

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

身份证方面的函数

Web开发
身份证方面的函数

身份证函数 查看身份证地区信息(2)

Web开发
身份证函数 查看身份证地区信息(2)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

身份证可异地换证 身份证异地换证流程

身份证
身份证可异地换证 身份证异地换证流程

身份证丢了怎么挂失?临时身份证要多久?

身份证 生活小常识 居家生活
身份证丢了怎么挂失?临时身份证要多久?

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

身份证注销存缺陷 身份证丢了怎么办

身份证
身份证注销存缺陷 身份证丢了怎么办

如何补办身份证

身份证
如何补办身份证

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

关于情感的2018qq分组设计_发现内心的爱

关于情感的2018qq分组设计_发现内心的爱

唯美的qq分组设计名字_没有了心跳以为你不重要

唯美的qq分组设计名字_没有了心跳以为你不重要
下拉加载更多内容 ↓