게시판 본문의 개인정보 숨기기

게시판 본문의 개인정보 숨기기


게시판 본문에 개인정보(전화번호,주민번호,이메일) 이 있을 경우 *(에스터리스크) 처리 하는 방법

 - 에스터리스크 처리를 암호화라고 함.

위지윅(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); }