【常用函数】php 身份证信息分析函数 idcard_msg()

【常用函数】php 身份证信息分析函数 idcard_msg()

帮助函数

分析身份证的:省、市、区、生日、性别

 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
/**
 * 身份证信息获取
 *
 * @param string $idcard_no
 *
 * @return array
 */
function idcard_msg($idcard_no)
{
    $province = substr($idcard_no, 0, 2);
    $city = substr($idcard_no, 2, 2);
    $district = substr($idcard_no, 4, 2);

    if (strlen($idcard_no) == 15) {
        $year = '19' . substr($idcard_no, 6, 2);
        $month = substr($idcard_no, 8, 2);
        $day = substr($idcard_no, 10, 2);

        $sex_num = substr($idcard_no, 14, 1);
    } else {
        $year = substr($idcard_no, 6, 4);
        $month = substr($idcard_no, 10, 2);
        $day = substr($idcard_no, 12, 2);

        $sex_num = substr($idcard_no, 16, 1);
    }

    $birthday = "{$year}-{$month}-{$day}";

    $sex = $sex_num % 2 == 1 ? '男' : '女';

    return compact('province', 'city', 'district', 'birthday', 'sex');
}