출처 : PHPSCHOOL
게시글 본문 내용중 주민번호 검색 해 냅니다.
주민번호를 * 로 변환 하도록 해도 되겠네요...
나름 머리를 쓰면서 만들다가.. 요즘은 하드웨어를 이용해서 변환시킨다길래....
한번 써보지도 못하고...쓸모없는 소스가 되어버렸네요...
여튼, 그래도.. 꼭 필요하신 분이 계실거 같아.. 공개합니다.
주민번호 체크(function RegiNum)하는 것은 phpschool.com에 어느분께서 올리신걸 이용했습니다. 죄송합니다만, 어느분이 올리셨는지 까먹었네요..^^; 검색해서 찾아보세용..
<?
$bbs_contents = '본문내용에 주민번호와 그렇지않은 번호를 넣어보세요....';
$pattern = '/^\d{6}-\d{7}$/';
$pattern = '/[0-9]{6}(-|\*|_|=|[[:space:]])*[1|2|3|4][0-9]{6}/';
preg_match_all($pattern, $bbs_contents, $matches, PREG_SET_ORDER);
$i=0;
foreach ($matches as $val) {
preg_match("/(\d{6}).*(\d{7})/",$val[0],$res);
$chk_jumin =$res[1].$res[2];
echo $chk_jumin.' => ';
if(RegiNum($chk_jumin)) {
echo ' true, ';
$bbs_contents = str_replace($val[0],'<font color="#ff8800">'.$val[0].'</font>',$bbs_contents);
} else {
$bbs_contents = str_replace($val[0],'<font color="blue">'.$val[0].'</font>',$bbs_contents);
echo ' false, ';
}
$i++;
}
function RegiNum($reginum) {
$weight = '234567892345'; // 자리수 weight 지정
$len = strlen($reginum);
$sum = 0;
if ($len <> 13) { return false; }
for ($i = 0; $i < 12; $i++) {
$sum = $sum + (substr($reginum,$i,1) * substr($weight,$i,1));
}
$rst = $sum%11;
$result = 11 - $rst;
if ($result == 10) {$result = 0;}
else if ($result == 11) {$result = 1;}
$jumin = substr($reginum,12,1);
if ($result <> $jumin) {return false;}
return true;
}
?>
출처 : PHPSCHOOL
'프로그래밍 > PHP' 카테고리의 다른 글
[펌]PHP socket을 이용한 파일 전송 (0) | 2008.10.16 |
---|---|
파일 전송 인터페이스 만들기 (0) | 2008.10.16 |
PHP 코드를 최적화하는 40가지 팁 (0) | 2008.08.21 |
PHP에서 유동변수(?) 사용하기 (0) | 2008.07.30 |
URL에 PHPSESSID 값이 생길 때 (0) | 2008.07.15 |