基于PHP如何让身份证号15位数转18位数
Admin 2022-06-13 群英技术资讯 560 次浏览
本文实例讲述了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;$i<17;$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); }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
虽然PHP是一门弱类型语言,在声明和使用变量的时候,并不需要指明其数据类型,但是你也应该了解它的数据类型!String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
php中CLI模式的介绍:1、是PHP在命令行运行的接口,区别于在Web服务器上运行的PHP环境。2、优点,使用多进程时,在子进程结束后,内核负责资源的回收等。
如何终止php脚本运行?终止PHP脚本运行就是告诉PHP引擎,此语句之后的其他域名不需要再继续执行了,那么我们要如何实现这一操作呢?下面给大家分享三种终止脚本运行的方式。
本文实例讲述了PHP设计模式工厂模式Factory。下文的讲解详细,步骤过程清晰,对大家进一步学习和理解相关知识有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
php桥接模式的作用:1、桥接模式分离抽象接口及其实现部分,实现解耦,比继承更好的解决方案。2、便于扩展,桥接模式比继承更灵活,在减少创建类的同时也便于组合。3、桥接模式可用于两个独立变化维度。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008