PHP 신분증 검사 코드 계산 방법

중국(대륙)시민 주민등록번호 가 모든 사람 이 대표 하 는 의 미 는 인터넷 에 많은 글 들 이 소개 되 어 있 으 므 로 더 이상 말 하지 않 겠 습 니 다.이 가운데 주민등록번호 의 마지막 자 리 는 체크 코드 로 17 위 까지 계산 됐다.알고리즘 은 대략 다음 과 같다.앞의 17 자리 의 모든 숫자 와 한 줄 의 가중 인 자 를 곱 하고 이 곱셈 의 합 을 계산한다.이 곱 하기 와 모 11 에서 얻 은 숫자 를 번호 로 하고 마지막 으로 검사 코드 문자열 에서 번호 에 해당 하 는 문 자 를 추출 합 니 다.물론 인터넷 에 도 이 검사 코드 를 계산 하 는 글 이 적지 않다.다음은 사용자 의 신분증 번호 가 정확 한 지 검증 하 는 등 PHP 언어 로 이 작업 을 완성 하려 고 시도 할 것 이다.
만약 에 한 중국(대륙)국민 의 신분증 번호 17 위 가 이것 이 라 고 가정 하면 우 리 는 위의 알고리즘 에 따라 몇 줄 의 PHP 코드 를 써 서 검사 코드 의 계산 을 완성 하려 고 합 니 다.여러분 이 쉽게 이해 할 수 있 도록 저 는 비교적 간단 한 문 구 를 사 용 했 습 니 다.코드 를 보 세 요.

<?php
//      17 ,           (    、        )
$body = '44010221990101001';
//    
$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 
for ($i = 0;$i < 17;$i++) {
//   17      ,          
$b = (int) $body{$i};
//         
$w = $wi[$i];
//                      ,   
$sigma += $b * $w;
}
//    
$number = $sigma % 11;
//                 。
$check_number = $ai[$number];
//  
echo $body.$check_number;
?>
상기 코드 를 실행 한 후 이 신분증 의 검사 코드 를 9 로 계산 할 수 있다.여러분 은 자신의 신분증 상위 17 명 을 사용 해 보 세 요.
위의 예 를 알 면 이 코드 의 일부 문 구 를 합 쳐 불필요 한 변 수 를 제거 하고 다음 과 같은 코드 를 최적화 할 수 있 습 니 다.

<?php
$body = '44010221990101001';
$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');
for ($i = 0;$i < 17;$i++) {
$sigma += ((int) $body{$i}) * $wi[$i];
}
echo $body.$ai[($sigma % 11)];
?>
위 에서 말 한 것 은 여러분 에 게 소개 한 PHP 신분증 검사 코드 의 계산 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 여러분 에 게 답 할 것 입 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기