gpt4 book ai didi

使用php从身份证号中获取一系列线索(星座、生肖、生日等)

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 28 4
gpt4 key购买 nike

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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com