- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章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表示.
代码示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<?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
);
}
|
希望本文所述对大家PHP程序设计有所帮助.
原文链接:https://www.cnblogs.com/gyfluck/p/10974973.html 。
最后此篇关于PHP实现15位身份证号转18位的方法分析的文章就讲到这里了,如果你想了解更多关于PHP实现15位身份证号转18位的方法分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
1、数据脱敏解释 在日常开发需求中会经常遇到数据脱敏处理,比如身份证号、手机号,需要使用*进行部分替换显示。这样能使敏感隐私信息在一定程度上得到保护。那么什么是数据脱敏呢? 在涉及客户安全数据
1、仿淘宝评论购买记录隐藏部分用户名,以下代码亲测可用。 复制代码 代码如下: function cut_str($string, $sublen, $start = 0, $co
废话不多说了,下面给大家介绍使用正则表达式验证用户名、密码、手机号码、身份证的写法,需要的的朋友参考下吧 ?
废话不多说了,直接给大家贴实现此功能的正则表达式代码了,具体代码如下所示: ?
我正在使用 .NET v5.0.100-preview.8.20417.9、ASP.NET Core Web API 5、Microsoft SQL Server 2019、Entity Framew
我正在使用 .NET v5.0.100-preview.8.20417.9、ASP.NET Core Web API 5、Microsoft SQL Server 2019、Entity Framew
我是一名优秀的程序员,十分优秀!