手机版

PHP中15位身份证号转换为18位身份证号的方法分析

时间:2021-08-19 来源:互联网 编辑:宝哥软件园 浏览:

阐述了用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位数字表示:区县代码;4第7至14位数字表示:出生年月日;第15、16位数字表示当地派出所代码;第17位数字表示性别:奇数表示男性,偶数表示女性;第18位是校验码:有人说是个人信息码,通常是用电脑随机生成的,用来检查身份证的正确性。校验码可以是0到9之间的数字,有时也用x表示。

代码示例:

?PHP function cardi d15to 18($ card){ $ len=strlen($ card);if($ len==18){ return $ card;}else if($len!=15){返回false} $ result=array();for($ I=0;$ i $ len$ I){ if($ I=5){ $ result[$ I]=int val($ card[$ I]);} else {//15位年份为两位数,18位年份为四位,留两位数:$ result[$ I ^ 2]=int val($ 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;} ks ort($ 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 $ 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 inquide(',$ result);}参考文章:https://www.jb51.net/article/172059.htm

PS:这里我们推荐一个类似的在线工具,供大家参考:

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

此外,在本网站的在线工具小程序上,还有一个功能更强大的身份证信息采集工具。感兴趣的朋友可以扫描下面的小程序代码查看一下:

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

希望本文对PHP编程有所帮助。

版权声明:PHP中15位身份证号转换为18位身份证号的方法分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。