- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章使用php从身份证号中获取一系列线索(星座、生肖、生日等)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文第一个实例为大家分享了PHP根据身份证号,自动获取对应的星座函数,供大家参考,具体内容如下 。
。
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
<?php
function
get_xingzuo(
$cid
) {
// 根据身份证号,自动返回对应的星座
if
(!isIdCard(
$cid
))
return
''
;
$bir
=
substr
(
$cid
,10,4);
$month
= (int)
substr
(
$bir
,0,2);
$day
= (int)
substr
(
$bir
,2);
$strValue
=
''
;
if
((
$month
== 1 &&
$day
>= 20) || (
$month
== 2 &&
$day
<= 18)) {
$strValue
=
"水瓶座"
;
}
else
if
((
$month
== 2 &&
$day
>= 19) || (
$month
== 3 &&
$day
<= 20)) {
$strValue
=
"双鱼座"
;
}
else
if
((
$month
== 3 &&
$day
> 20) || (
$month
== 4 &&
$day
<= 19)) {
$strValue
=
"白羊座"
;
}
else
if
((
$month
== 4 &&
$day
>= 20) || (
$month
== 5 &&
$day
<= 20)) {
$strValue
=
"金牛座"
;
}
else
if
((
$month
== 5 &&
$day
>= 21) || (
$month
== 6 &&
$day
<= 21)) {
$strValue
=
"双子座"
;
}
else
if
((
$month
== 6 &&
$day
> 21) || (
$month
== 7 &&
$day
<= 22)) {
$strValue
=
"巨蟹座"
;
}
else
if
((
$month
== 7 &&
$day
> 22) || (
$month
== 8 &&
$day
<= 22)) {
$strValue
=
"狮子座"
;
}
else
if
((
$month
== 8 &&
$day
>= 23) || (
$month
== 9 &&
$day
<= 22)) {
$strValue
=
"处女座"
;
}
else
if
((
$month
== 9 &&
$day
>= 23) || (
$month
== 10 &&
$day
<= 23)) {
$strValue
=
"天秤座"
;
}
else
if
((
$month
== 10 &&
$day
> 23) || (
$month
== 11 &&
$day
<= 22)) {
$strValue
=
"天蝎座"
;
}
else
if
((
$month
== 11 &&
$day
> 22) || (
$month
== 12 &&
$day
<= 21)) {
$strValue
=
"射手座"
;
}
else
if
((
$month
== 12 &&
$day
> 21) || (
$month
== 1 &&
$day
<= 19)) {
$strValue
=
"魔羯座"
;
}
return
$strValue
;
}
function
get_shengxiao(
$cid
) {
//根据身份证号,自动返回对应的生肖
if
(!isIdCard(
$cid
))
return
''
;
$start
= 1901;
$end
=
$end
= (int)
substr
(
$cid
,6,4);
$x
= (
$start
-
$end
) % 12;
$value
=
""
;
if
(
$x
== 1 ||
$x
== -11) {
$value
=
"鼠"
;}
if
(
$x
== 0) {
$value
=
"牛"
;}
if
(
$x
== 11 ||
$x
== -1) {
$value
=
"虎"
;}
if
(
$x
== 10 ||
$x
== -2) {
$value
=
"兔"
;}
if
(
$x
== 9 ||
$x
== -3) {
$value
=
"龙"
;}
if
(
$x
== 8 ||
$x
== -4) {
$value
=
"蛇"
;}
if
(
$x
== 7 ||
$x
== -5) {
$value
=
"马"
;}
if
(
$x
== 6 ||
$x
== -6) {
$value
=
"羊"
;}
if
(
$x
== 5 ||
$x
== -7) {
$value
=
"猴"
;}
if
(
$x
== 4 ||
$x
== -8) {
$value
=
"鸡"
;}
if
(
$x
== 3 ||
$x
== -9) {
$value
=
"狗"
;}
if
(
$x
== 2 ||
$x
== -10) {
$value
=
"猪"
;}
return
$value
;
}
function
get_xingbie(
$cid
) {
//根据身份证号,自动返回性别
if
(!isIdCard(
$cid
))
return
''
;
$sexint
= (int)
substr
(
$cid
,16,1);
return
$sexint
% 2 === 0 ?
'女'
:
'男'
;
}
function
isIdCard(
$number
) {
// 检查是否是身份证号
// 转化为大写,如出现x
$number
=
strtoupper
(
$number
);
//加权因子
$wi
=
array
(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
//校验码串
$ai
=
array
(
'1'
,
'0'
,
'X'
,
'9'
,
'8'
,
'7'
,
'6'
,
'5'
,
'4'
,
'3'
,
'2'
);
//按顺序循环处理前17位
$sigma
= 0;
for
(
$i
= 0;
$i
< 17;
$i
++) {
//提取前17位的其中一位,并将变量类型转为实数
$b
= (int)
$number
{
$i
};
//提取相应的加权因子
$w
=
$wi
[
$i
];
//把从身份证号码中提取的一位数字和加权因子相乘,并累加
$sigma
+=
$b
*
$w
;
}
//计算序号
$snumber
=
$sigma
% 11;
//按照序号从校验码串中提取相应的字符。
$check_number
=
$ai
[
$snumber
];
if
(
$number
{17} ==
$check_number
) {
return
true;
}
else
{
return
false;
}
}
?>
|
第二个实例:用php从身份证中提取生日,包括15位和18位身份证:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
function
getIDCardInfo(
$IDCard
,
$format
=1){
$result
[
'error'
]=0;
//0:未知错误,1:身份证格式错误,2:无错误
$result
[
'flag'
]=
''
;
//0标示成年,1标示未成年
$result
[
'tdate'
]=
''
;
//生日,格式如:2012-11-15
if
(!preg_match(
"/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/"
,
$IDCard
)){
$result
[
'error'
]=1;
return
$result
;
}
else
{
if
(
strlen
(
$IDCard
)==18)
{
$tyear
=
intval
(
substr
(
$IDCard
,6,4));
$tmonth
=
intval
(
substr
(
$IDCard
,10,2));
$tday
=
intval
(
substr
(
$IDCard
,12,2));
}
elseif
(
strlen
(
$IDCard
)==15)
{
$tyear
=
intval
(
"19"
.
substr
(
$IDCard
,6,2));
$tmonth
=
intval
(
substr
(
$IDCard
,8,2));
$tday
=
intval
(
substr
(
$IDCard
,10,2));
}
if
(
$tyear
>
date
(
"Y"
)||
$tyear
<(
date
(
"Y"
)-100))
{
$flag
=0;
}
elseif
(
$tmonth
<0||
$tmonth
>12)
{
$flag
=0;
}
elseif
(
$tday
<0||
$tday
>31)
{
$flag
=0;
}
else
{
if
(
$format
)
{
$tdate
=
$tyear
.
"-"
.
$tmonth
.
"-"
.
$tday
;
}
else
{
$tdate
=
$tmonth
.
"-"
.
$tday
;
}
if
((time()-
mktime
(0,0,0,
$tmonth
,
$tday
,
$tyear
))>18*365*24*60*60)
{
$flag
=0;
}
else
{
$flag
=1;
}
}
}
$result
[
'error'
]=2;
//0:未知错误,1:身份证格式错误,2:无错误
$result
[
'isAdult'
]=
$flag
;
//0标示成年,1标示未成年
$result
[
'birthday'
]=
$tdate
;
//生日日期
return
$result
;
}
|
最后一个实例:php 提取身份证号码中的生日日期以及确定是否成年的一个函数。可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<?php
//用php从身份证中提取生日,包括位和位身份证
function
getIDCardInfo(
$IDCard
){
$result
[
'error'
]=;
//:未知错误,:身份证格式错误,:无错误
$result
[
'flag'
]=
''
;
//标示成年,标示未成年
$result
[
'tdate'
]=
''
;
//生日,格式如:--
if
(!
eregi
(
"^[-]([-a-zA-Z]{}|[-a-zA-Z]{})$"
,
$IDCard
)){
$result
[
'error'
]=;
return
$result
;
}
else
{
if
(
strlen
(
$IDCard
)==){
$tyear
=
intval
(
substr
(
$IDCard
,,));
$tmonth
=
intval
(
substr
(
$IDCard
,,));
$tday
=
intval
(
substr
(
$IDCard
,,));
if
(
$tyear
>
date
(
"Y"
)||
$tyear
<(
date
(
"Y"
)-)){
$flag
=;
}
elseif
(
$tmonth
<||
$tmonth
>){
$flag
=;
}
elseif
(
$tday
<||
$tday
>){
$flag
=;
}
else
{
$tdate
=
$tyear
.
"-"
.
$tmonth
.
"-"
.
$tday
.
" ::"
;
if
((time()-
mktime
(,,,
$tmonth
,
$tday
,
$tyear
))>****){
$flag
=;
}
else
{
$flag
=;
}
}
}
elseif
(
strlen
(
$IDCard
)==){
$tyear
=
intval
(
""
.
substr
(
$IDCard
,,));
$tmonth
=
intval
(
substr
(
$IDCard
,,));
$tday
=
intval
(
substr
(
$IDCard
,,));
if
(
$tyear
>
date
(
"Y"
)||
$tyear
<(
date
(
"Y"
)-)){
$flag
=;
}
elseif
(
$tmonth
<||
$tmonth
>){
$flag
=;
}
elseif
(
$tday
<||
$tday
>){
$flag
=;
}
else
{
$tdate
=
$tyear
.
"-"
.
$tmonth
.
"-"
.
$tday
.
" ::"
;
if
((time()-
mktime
(,,,
$tmonth
,
$tday
,
$tyear
))>****){
$flag
=;
}
else
{
$flag
=;
}
}
}
}
$result
[
'error'
]=;
//:未知错误,:身份证格式错误,:无错误
$result
[
'isAdult'
]=
$flag
;
//标示成年,标示未成年
$result
[
'birthday'
]=
$tdate
;
//生日日期
return
$result
;
}
|
用法如下:
getIDCardInfo('身份证号码'),
以上代码就是小编跟大家分享的php提取身份证号码中的生日日期以及验证是否为成年人的函数,希望对大家有用.
最后此篇关于使用php从身份证号中获取一系列线索(星座、生肖、生日等)的文章就讲到这里了,如果你想了解更多关于使用php从身份证号中获取一系列线索(星座、生肖、生日等)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如果我在 forms.py 中有: birthdate = forms.DateTimeField() 和 html: 我需要创建一个新的小部件还是有答案?
我正在尝试从 facebook sdk 获取生日,我可以获取我的生日,但我无法从其他帐户获取生日。我已经在“设置”中设置了联系人电子邮件,并在此处回答了一个应用程序供公众使用:Set up app p
我需要存储用户的出生日期。我在前端创建了一个表单,通过 3 个选择下拉菜单获取他们的出生日期年、月和日。我目前将这三个值存储在 SQL 中,并具有相同名称的列。 我需要执行的查询之一是获取高于或低于特
我有 mysql 数据库,以生日列作为日期。 保存到此列的最佳方式是什么,年份是可选的。我应该随便放一些年份吗?在数据库中保存生日的最佳做法是什么。 我在 cakephp 中创建了 3 个文本字段,日
考虑到此代码(基于 Python/Mongoengine),我知道如何找到下一个即将到来的生日 class User(mongoengine.Document): (...) birthday
在以前版本的 Prestashop 1.6 中,注册表单有生日字段的日期选择器和一个下拉列表,我们可以在其中选择月、日、年。 Prestashop 版本 1.6 - 生日截图: 然后在最新版本的Pre
我正在使用带有changeYear 的jquery ui datepicker。问题是它以 block 的形式显示年份(从 1985 年到 2005 年,然后单击 1985 年打开其他年份)我需要显示
我正试图在来自佛蒙特州和纽约的成员(member)的生日表中找到最年长的人。我的成员类似于以下内容: Members ------- MemberID, Firstname, Lastname, Bi
工作中需要用到身份证验证,还要支持检查15位和18位。 我一时手懒,问同事有没有现成的函数可用,同事google了一下,扔给我一个 asp-vbscript版本的函数。 可我这边是客户端j
我正在努力解决以下正则表达式: \b[\dBb][-. \dEe]+(\d{4})\b 它应该匹配帐号,但不匹配 token /生日或其中包含“be”的文本。在 community 的支持下,我成功捕
我有一个简单的小部件,它有: 请注意,今天是生日。因此,它意味着保持相同,无论您身在何处(不应该发生时区)。如果您 1 月 10 日凌晨 3:00 出生在英国,并且在纽约查看您的个人信息,您应该仍然
在我的数据库中,日期存储为 dd/mm/yyyy。当我检索它时,我想将日期分别拆分为字符串日、字符串月和字符串年。我应该怎么做? “/”将是分隔符,对吗? 最佳答案 您需要可以使用DateTime.P
我很难通过 Facebook SDK 获取用户信息。 我正在努力争取生日、工作和教育。 我正在使用这个: let graphRequest : FBSDKGraphRequest = FBSDKGr
我正在尝试使用 NSSortDescriptor 按日期对 NSMutableArray *friends, key:birthday 进行排序,我的 NSLog 中的所有生日都为空,但名称仍在记录中
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在尝试从其 Google Plus 帐户获取用户的信息,包括性别和年龄。由于这些字段可能是私有(private)的,我认为明确请求它们可以解决问题。然而,尽管登录对话框明确指出该应用程序请求查看您
我正在制作一个 facebook 应用程序来显示用户的生日......... 'YOUR_APP_ID', 'secret' => 'Y
我正在尝试将 OAuth2 登录添加到我基于 Node/ExpressJS/MongoDB/PassportJS 构建的应用中。 我用这个方法可以成功登录,但是我无法获取某些信息。我唯一能够访问的是
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我无法让我的代码来获取我的测试帐户的“生日”,甚至我自己的“生日”(任何地方都没有成功!)来回显,尽管从我所看到的来看,我正在正确地请求它并且我拥有适当的权限对于“user_birthday”。 但是
我是一名优秀的程序员,十分优秀!