주민등록번호 검사.. > 유익한 싸이트

본문 바로가기
 

주민등록번호 검사..

페이지 정보

작성자 이름으로 검색 댓글 0건 조회 15,613회 작성일 05-08-07 19:33

본문

주민등록번호 검사..
 

글쓴이 : 방준성

저작권자 이메일 : noh1017@orgio.net

출처 : http://www.koreaphp.co.kr

작성일 : 2002/04/26 12:22:12

 

글내용

뒷자리는 출생신고를 한 동사무소(?)와 관련이 있다고 하던데...ㅡ.ㅡ;;

암튼 뒷자리 주민번호와 일련번호(1,2,3,4,5,6,7,8,...n)를 곱한 합을 11로 나누어 그 나머지를 11에서

뺀 값이 주민번호 맨 마지막 번호와 일치하면 맞는 번호고 아니면

틀린번호라죠?? 그걸 검사하는 소스입니다. 날짜까지 하네요....우와~

<?php
// 주민등록번호 유효성 검사: 올바른 경우 true, 틀린 경우 false 반환
function resnoCheck($resno1, $resno2) {
$resno = $resno1 . $resno2;

// 형태 검사: 총 13자리의 숫자, 7번째는 1..4의 값을 가짐
if (!ereg('^[[:digit:]]{6}[1-4][[:digit:]]{6}$', $resno))
return false;

// 날짜 유효성 검사
$birthYear = ('2' >= $resno[6]) ? '19' : '20';
$birthYear += substr($resno, 0, 2);
$birthMonth = substr($resno, 2, 2);
$birthDate = substr($resno, 4, 2);
if (!checkdate($birthMonth, $birthDate, $birthYear))
return false;

// Checksum 코드의 유효성 검사
for ($i = 0; $i < 13; $i++) $buf[$i] = (int) $resno[$i];
$multipliers = array(2,3,4,5,6,7,8,9,2,3,4,5);
for ($i = $sum = 0; $i < 12; $i++) $sum += ($buf[$i] *= $multipliers[$i]);
if ((11 - ($sum % 11)) % 10 != $buf[12])
return false;

// 모든 검사를 통과하면 유효한 주민등록번호임
return true;
}
?>
[이 게시물은 human님에 의해 2007-05-15 09:09:28 bulk3에서 이동 됨]

댓글목록

등록된 댓글이 없습니다.

Total 224건 5 페이지
유익한 싸이트 목록
번호 제목 글쓴이 조회 날짜
152 이름으로 검색 15739 02-06
151 이름으로 검색 15696 01-24
150 이름으로 검색 15681 08-07
149 이름으로 검색 15678 08-07
열람중 이름으로 검색 15614 08-07
147 이름으로 검색 15604 09-02
146 이름으로 검색 15584 08-07
145 이름으로 검색 15575 09-13
144 이름으로 검색 15510 06-15
143 이름으로 검색 15489 07-20
142 이름으로 검색 15480 10-11
141 이름으로 검색 15459 07-20
140 이름으로 검색 15392 09-27
139 이름으로 검색 15392 03-05
138 이름으로 검색 15381 09-02
137 이름으로 검색 15372 11-07
136 이름으로 검색 15367 10-27
135 이름으로 검색 15338 08-07
게시물 검색