gpt4 book ai didi

PHP 验证身份证是否合法的函数

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

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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
function is_idcard( $id )
{
   $id = strtoupper ( $id );
   $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/" ;
   $arr_split = array ();
   if (!preg_match( $regx , $id ))
   {
     return FALSE;
   }
   if (15== strlen ( $id )) //检查15位
   {
     $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/" ;
     @preg_match( $regx , $id , $arr_split );
     //检查生日日期是否正确
     $dtm_birth = "19" . $arr_split [2] . '/' . $arr_split [3]. '/' . $arr_split [4];
     if (! strtotime ( $dtm_birth ))
     {
       return FALSE;
     }
     else
     {
       return TRUE;
     }
   }
   else //检查18位
   {
     $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/" ;
     @preg_match( $regx , $id , $arr_split );
     $dtm_birth = $arr_split [2] . '/' . $arr_split [3]. '/' . $arr_split [4];
     if (! strtotime ( $dtm_birth )) //检查生日日期是否正确
     {
       return FALSE;
     }
     else
     {
       //检验18位身份证的校验码是否正确。
       //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
       $arr_int = array (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
       $arr_ch = array ( '1' , '0' , 'X' , '9' , '8' , '7' , '6' , '5' , '4' , '3' , '2' );
       $sign = 0;
       for ( $i = 0; $i < 17; $i ++ )
       {
         $b = (int) $id { $i };
         $w = $arr_int [ $i ];
         $sign += $b * $w ;
       }
       $n = $sign % 11;
       $val_num = $arr_ch [ $n ];
       if ( $val_num != substr ( $id ,17, 1))
       {
         return FALSE;
       }
       else
       {
         return TRUE;
       }
     }
   }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我! 。

最后此篇关于PHP 验证身份证是否合法的函数的文章就讲到这里了,如果你想了解更多关于PHP 验证身份证是否合法的函数的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

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