// 주민등록번호 유효성 검사: 올바른 경우 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;
}
'PHP∵SCRIPT' 카테고리의 다른 글
반드시 알아아 할 PHP 보안 30 가지 (0) | 2014.04.24 |
---|---|
HTML 웹문서의 TAG 지우고 본문만 남기기, php 명령모드에서 실행하기 (0) | 2014.04.24 |
Mysql 날짜/시간 관련 함수 (0) | 2014.04.24 |
php xml parse 3종 세트 (0) | 2014.04.24 |
> 로 시작해서 </ 로 끝나는 부분만 추출하기 (0) | 2014.04.22 |
PHP 처리속도 올리기 (0) | 2014.04.21 |
팝업창으로 폼값 전송하기 (0) | 2014.04.21 |
디렉 토리별 용량 구하기 3가지 (0) | 2014.04.21 |
댓글