주민등록번호 검사..
페이지 정보
작성자 차동박 이름으로 검색 댓글 0건 조회 18,038회 작성일 05-08-07 19:33본문
주민등록번호 검사.. | ||
글쓴이 : 방준성 |
저작권자 이메일 : noh1017@orgio.net |
|
작성일 : 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; } ?> |
댓글목록
등록된 댓글이 없습니다.