基于PHP如何让身份证号15位数转18位数
Admin 2022-06-13 群英技术资讯 1040 次浏览
这篇文章主要介绍了基于PHP如何让身份证号15位数转18位数相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于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;$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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
复选框checkbox通常用于php表单提交。本文通过实例给大家介绍php如何判断复选框中的值是否被选中。需要它的朋友可以参考本文中的例子。
PhpSpreadsheet是一个用纯PHP编写的库,提供了一组类,可以方便我们进行读取和写入不同的电子表格文件格式,因此PHP使用PhpSpreadsheet能很比较方便的对Excel进行操作,有些朋友可以能没有接触过PhpSpreadsheet,下面小编就给大家介绍一下PHP使用PhpSpreadsheet操作Excel的方法。
异常指的是程序在运行中出现不符合预期的情况,云溪发生,但属于一种不正常的情况,是本不该出现但仍出现的错误,属于逻辑和业务流程的错误,而不是编译或者语法上的错误。异常用于在指定的错误发生时改变脚本的正常流程。
laravel怎样实现批量更新数据?我们知道Laravel框架中有批量插入数据的方法,但是没有批量更新的方法,如果要每条数据都执行一次,那么不仅速度慢而且会占用更多的资源。对此,这篇文章就给大家分享一下laravel实现批量更新多条数据的方法。
本文实例讲述了PHP设计模式之迭代器模式Iterator。有不少朋友对于这个的问题比较感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考,下面我们一起来了解一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008