게시판 본문의 개인정보 숨기기
게시판 본문에 개인정보(전화번호,주민번호,이메일) 이 있을 경우 *(에스터리스크) 처리 하는 방법
- 에스터리스크 처리를 암호화라고 함.
위지윅(wyswyg)으로 작성을 했거나 html 태그, URL 등이 있으면 암호화 하는데 어려움이 있다.
URL 에 연속 숫자가 있거나 이메일 주소가 있을 수 있기 때문이다.
또 html 내용인 경우 xml화 하여 node별로 순차적으로 변환 하는 방법도 생각 해봤으나 아닌 경우도 있다.
그래서 생각해낸 것이 html 코드를 지우고 변환 하는 방법이다.
$cb_contents; // 원문 if(islogin() == false) { // 비회원이면 /* strip_tags 전 개행태그를 개행 문자로 변환 */ /* 태그를 없에 버리면 문자열이 붙어 버리므로 정확하게 찾을 수 없다.*/ $_cb_cont = str_ireplace("
","\n",$cb_contents); $_cb_cont = str_ireplace("
","\n",$_cb_cont); $_cb_cont = strip_tags($_cb_cont); // html 코드 삭제 순수 text 만 /* * 주민번호 문자열을 변환 * 주민번호 정규표현식으로 해당 문자열만 match 에 저장하고 변환 */ $re = '/[0-9]{2}(0[1-9]|1[012]){1}(0[1-9]|1[0-9]|2[0-9]|3[01])-?[1234][0-9]{6}/'; @preg_match_all($re, $_cb_cont, $match, PREG_PATTERN_ORDER); $cb_contents = str_replace($match[0],"******-*******",$cb_contents); /* 핸드폰 문자열을 변환 */ $re = '/[0]{1}[1]{1}[0-9]{1}-?[0-9]{3,4}-?[0-9]{3,4}/'; @preg_match_all($re, $_cb_cont, $match, PREG_PATTERN_ORDER); $cb_contents = str_replace($match[0],"***-****-****",$cb_contents); /* 유선전화 문자열을 변환 */ $re = '/[0]{1}[0-9]{1,2}-?[0-9]{3,4}-?[0-9]{3,4}/'; @preg_match_all($re, $_cb_cont, $match, PREG_PATTERN_ORDER); $cb_contents = str_replace($match[0],"***-****-****",$cb_contents); /* 이메일 문자열을 변환 */ $re = '/[_0-9a-zA-Z_-]+(\.[_0-9a-zA-Z_-]+)*@[0-9a-zA-Z_-]+(\.[0-9a-zA-Z_-]+)/'; @preg_match_all($re, $_cb_cont, $match, PREG_PATTERN_ORDER); $cb_contents = str_replace($match[0],"*****@*****.***",$cb_contents); }
'PHP' 카테고리의 다른 글
정규식 (0) | 2016.06.14 |
---|---|
php에서 싱글톤 패턴 이용하기 (클래스에서의 참조) (0) | 2016.06.14 |
json_encode 시 한글 깨짐 현상 (0) | 2015.05.29 |
PHP sprintf를 이용한 실수형(소수점) 연산(float) (0) | 2015.03.12 |
default_controller 를 index 로 지정할 경우. (0) | 2014.09.10 |