반응형
PHP 프로그램에서 주민등록번호 유효성을 체크하는 함수입니다.
프론트 앤드가 아닌 서버 사이드에서 체크가 필요할 경우에 사용합니다.
정규식, checkdate, checksum을 활용하여 작성되었습니다.
function resnoCheck($resno1, $resno2) {
$resno = $resno1 . $resno2;
$isResnoCheck = true;
// 형태 검사: 총 13자리의 숫자, 7번째는 1..4의 값을 가짐
if (!ereg('^[[:digit:]]{6}[1-4][[:digit:]]{6}$', $resno)) {
$isResnoCheck = 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)) {
$isResnoCheck = 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]) {
$isResnoCheck = false;
}
// 모든 검사를 통과하면 유효한 주민등록번호임
return $isResnoCheck;
}
2019/12/25 - [유용한 활용팁] - PHP로 HTML 태그를 사용하여 PDF 파일 생성 및 다운로드 받기 처리 - TCPDF
2019/12/14 - [유용한 활용팁] - PHP MySQL Bulk Insert 방식으로 대량 INSERT 처리하기
2019/12/08 - [유용한 활용팁] - PHP 문자 암호화하여 Form 전송하기 - mcrypt_encrypt, mcrypt_decrypt, bin2hex, pack
2019/12/06 - [유용한 활용팁] - PHP 마지막 문자 콤마(,) 제거 방법 - substr, rtrim, trim, implode
2019/11/17 - [유용한 활용팁] - PHP 2차원 Array에서 unset후 배열 index 재 정렬 방법
반응형
'유용한 활용팁' 카테고리의 다른 글
포토샵 이미지 테두리 선 만들기 (0) | 2020.02.20 |
---|---|
PHP, 리눅스 SSL(https)로 URL 자동 전환하는 방법 (0) | 2020.02.19 |
파이썬 문자열 다루기 - Print, Length, Index, substring (0) | 2020.02.14 |
리눅스에서 배치로 PHP 실행하고 실행 로그 출력하기 (0) | 2020.02.04 |
티스토리 반응형 Square 스킨 사이드바에 애드핏, 애드센스 넣기 (0) | 2020.02.03 |