>  기사  >  백엔드 개발  >  PHP는 ID 번호를 확인합니다

PHP는 ID 번호를 확인합니다

小云云
小云云원래의
2017-12-08 15:41:353283검색

이 기사에서는 PHP에서 ID 번호를 확인하는 방법에 대한 지식을 공유합니다. 이는 또한 모든 사람에게 도움이 되기를 바랍니다.

ID 번호의 구조

ID 번호는 17자리의 본문 코드와 1비트의 검사 코드로 구성된 특징적인 조합 코드입니다.

왼쪽부터 순서는 6자리 주소 코드, 8자리 생년월일 코드, 3자리 시퀀스 코드, 1자리 체크 코드입니다.


주소코드(처음 6자리)

는 인코딩 대상의 영구 거주지가 위치한 군(시, 배너, 구)의 행정 구역 코드를 나타내며, GB/T2260 구현의 조항에 따라.


생년월일 코드(7~14자리)

은 인코딩 개체의 생년월일을 나타내며 다음 조항에 따라 구현됩니다. GB/T7408, 연도, 월과 일 코드 사이에 구분 기호가 없습니다.


일련번호(15~17자리)

은 같은 연도, 같은 월, 같은 날에 태어난 사람이 같은 주소로 식별되는 지역 내에서 코드화됨을 나타냅니다. 특정 일련 번호, 홀수는 남성에게 할당되고 짝수는 여성에게 할당됩니다. ㅋㅋㅋ ), i=0 , ... , 16, 먼저 처음 17자리의 가중치를 합산합니다.

Ai: i번째 위치의 ID 번호의 디지털 값을 나타냅니다.

Wi: i번째 위치의 가중치를 나타냅니다.

Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2


2. 모듈러스를 계산하세요

Y = mod(S, 11)

3.

Y: 0 1 2 3 4 5 6 7 8 9 10

인증코드: 1 0 [php]
일반 사본 보기

<?php  
function checkIdCard($idcard){  
  // 只能是18位
  if(strlen($idcard)!=18){  
    return false;  
   }  
    // 取出本体码
    $idcard_base = substr($idcard, 0, 17);  
    // 取出校验码
    $verify_code = substr($idcard, 17, 1);  
    // 加权因子
    $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);  
    // 校验码对应值
    $verify_code_list = array(&#39;1&#39;, &#39;0&#39;, &#39;X&#39;, &#39;9&#39;, &#39;8&#39;, &#39;7&#39;, &#39;6&#39;, &#39;5&#39;, &#39;4&#39;, &#39;3&#39;, &#39;2&#39;);  
    // 根据前17位计算校验码
    $total = 0;  
    for($i=0; $i<17; $i++){  
        $total += substr($idcard_base, $i, 1)*$factor[$i];  
    }  
    // 取模
    $mod = $total % 11;  
    // 比较校验码
    if($verify_code == $verify_code_list[$mod]){  
       return true;  
    }else{  
       return false;  
    }  
}  
$idcard = &#39;这里填写要验证的身份证号码&#39;;  
var_dump(checkIdCard($idcard));  
?>
관련 추천:

완벽한 신분증 인증 구현 방법 js 일반 방법

JavaScript를 사용하여 신분증 확인

php를 사용하여 ID 번호가 올바른지 확인하는 예제 코드

위 내용은 PHP는 ID 번호를 확인합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:정규 지식 포인트다음 기사:정규 지식 포인트