728x90
보안 목적상 코드를 마스킹처리해야 한다. 일부는 정규표현식을 사용했다.
<?php
// ######### 마스킹 처리 ###########
function phoneNoMasking($str){ // 휴대폰번호 마스킹 처리
$str = str_replace('-','',$str);
$strlen = mb_strlen($str, 'utf-8');
$mValue = "";
switch($strlen){
case 10:
$mValue = mb_substr($str,0,3)."-".mb_substr($str,3,1)."**"."-*".mb_substr($str,7,3);;
break;
case 11:
$mValue = mb_substr($str,0,3)."-".mb_substr($str,3,2)."**"."-*".mb_substr($str,8,3);
break;
case 0:
$mValue ='';
break;
}
return $mValue;
}
function IDMasking($str){ // id 마스킹
$mValue = preg_replace('/.{3}$/', '***', $str);
return $mValue;
}
function EmailMasking($str){ // 수정 보완 필요
//$str = preg_replace('/(?:^|@).\K|\.[^@]*$(*SKIP)(*F)|.(?=.*?\.)/', '*', $str);
$pattern = '/(\w+)(\w{3})(@.{1})(?=.*?\.)(.+)/i';
$replace = '\1***\3*\5';
//$str = preg_replace('/(\w+)(\w{3})@(\w+)/i','\1***@\3',$str);
$str = preg_replace('/(\w+)(\w{3})(@.{1})([\w*?]+)(.+)/i','\1***\3*\5',$str);
return $str;
}
function IPaddressMasking($str){
// ? : 0 ~ 1, + : 1개 이상
$str = preg_replace('/(\d+)([\.]\d+[\.])(\d+)([\.]\d+)/i','***\2***\4',$str);
return $str;
}
function DeviceIDMasking($str){ // 휴대폰 기기번호 전부 마스킹 처리
$mValue = preg_replace('/(.*?)/', '*', $str);
return $mValue;
}
function letterMasking($str){ // 문자열 마스킹 : 홍*동
$str = str_replace('-','',$str);
$strlen = mb_strlen($str, 'utf-8');
$mValue = "";
switch($strlen){
case 2:
$mValue = mb_strcut($str, 0, 3, "UTF-8").'*';
break;
case 3:
$mValue = mb_strcut($str, 0, 3, "UTF-8").'*'.mb_strcut($str, 8, 11, "UTF-8");
break;
case 4:
$mValue = mb_strcut($str, 0, 3, "UTF-8").'**'.mb_strcut($str, 12, 15, "UTF-8");
break;
default:
$mValue = mb_strcut($str, 0, 3, "UTF-8").'**'.mb_strcut($str, 12, 15, "UTF-8");
break;
}
return $mValue;
}
?>
|
728x90
'정규표현식' 카테고리의 다른 글
parse MAC Address using Java Regular Expression (0) | 2021.08.07 |
---|---|
PHP 정규표현식 후방탐색, 전방탐색 (0) | 2021.07.28 |
55에서 255까지의 범위 정규식 (PHP 정규표현식) (0) | 2021.07.28 |
전화번호 추출 PHP 정규표현식 예제 (0) | 2021.07.27 |
PHP 정규표현식 특정범위 숫자 찾기 (0) | 2018.06.28 |