• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP实现15位身份证号转18位的方法分析

    本文实例讲述了PHP实现15位身份证号转18位的方法。分享给大家供大家参考,具体如下:

    第一代身份证:15位身份证号码的意义

    1-2位省、自治区、直辖市代码;
    3-4位地级市、盟、自治州代码;
    5-6位县、县级市、区代码;
    7-12位出生年月日,比如670401代表1967年4月1日,这是和18位号码的第一个区别;
    13-15位为顺序号,其中15位男为单数,女为双数;
    与18位身份证号的第二个区别:没有最后一位的校验码。

    第二代身份证:18位身份证号码的意义

      ①前1、2位数字表示:所在省份的代码,河南的省份代码是41哦!
      ②第3、4位数字表示:所在城市的代码;
      ③第5、6位数字表示:所在区县的代码;
      ④第7~14位数字表示:出生年、月、日;
      ⑤第15、16位数字表示:所在地的派出所的代码;
      ⑥第17位数字表示性别:奇数表示男性,偶数表示女性;
      ⑦第18位数字是校检码:也有的说是个人信息码,一般是随计算机随机产生,用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示。

    代码示例:

    ?php
    function CardId15To18($card){
      $len = strlen($card);
      if($len == 18){
        return $card;
      }else if($len != 15){
        return false;
      }
      $result = array();
      for($i=0;$i$len;$i++){
        if($i=5){
          $result[$i] = intval($card[$i]);
        }else{
          //15位的年份是两位数,18位的是4位数,留出2位
          $result[$i+2] = intval($card[$i]);
        }
      }
      //留出的2位,补充为年份,年份最后两位小于17,年份为20XX,否则为19XX
      if(intval(substr($card,6,2)) = 17){
        $result[6] = 2;
        $result[7] = 0;
      }else{
        $result[6] = 1;
        $result[7] = 9;
      }
      ksort($result);
      //计算最后一位
      //前十七位乘以系数[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],
      $arrInt = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
      $sum = 0;
      for($i=0;$i17;$i++){
        $sum += $result[$i] * $arrInt[$i];
      }
      //对11求余,的余数 0 - 10 
      $rod = $sum % 11;
      //所得余数映射到对应数字即可
      $arrCh = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
      $result[17] = $arrCh[$rod];
      return implode('',$result);
    }
    
    

    参考文章:https://www.jb51.net/article/172059.htm

    PS:这里再为大家推荐一款相似的在线工具供大家参考:

    身份证归属地信息在线查询:
    http://tools.jb51.net/bianmin/sfz

    另外,本站在线工具小程序上也有一款功能更加强大的身份证信息获取工具,感兴趣的朋友可以扫描如下小程序码查看:

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数学运算技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php正则表达式用法总结》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • php验证身份证号码正确性的函数
    • php正则判断是否为合法身份证号的方法
    • PHP 身份证号验证函数
    • php根据身份证号码计算年龄的实例代码
    • php提取身份证号码中的生日日期以及验证是否为成年人的函数
    • PHP实现中国公民身份证号码有效性验证示例代码
    • 使用php从身份证号中获取一系列线索(星座、生肖、生日等)
    • PHP实现可精确验证身份证号码的工具类示例
    • php身份证号码检查类实例
    • PHP用身份证号获取星座和生肖的方法
    • PHP校验15位和18位身份证号的类封装
    上一篇:laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
    下一篇:Laravel6.2中用于用户登录的新密码确认流程详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP实现15位身份证号转18位的方法分析 PHP,实现,15位,身份,证号,