function letterMasking($_type, $_data){
$_data = str_replace('-','',$_data);
$strlen = mb_strlen($_data, 'utf-8');
$maskingValue = "";
$useHyphen = "-";
if($_type == 'N'){
switch($strlen){
case 2:
$maskingValue = mb_strcut($_data, 0, 3, "EUC-KR").'○';
break;
case 6:
$maskingValue = mb_strcut($_data, 0, 3, "EUC-KR").'○';
break;
case 3:
$maskingValue = mb_strcut($_data, 0, 3, "EUC-KR").'○'.mb_strcut($_data, 8, 11, "EUC-KR");
break;
case 4:
$maskingValue = mb_strcut($_data, 0, 3, "EUC-KR").'○○'.mb_strcut($_data, 12, 15, "EUC-KR");
break;
default:
$maskingValue = mb_strcut($_data, 0, 3, "EUC-KR").'○○'.mb_strcut($_data, 12, 15, "EUC-KR");
break;
}
}else if($_type == 'P'){
switch($strlen){
case 10:
$maskingValue = mb_substr($_data, 0, 3)."{$useHyphen}***{$useHyphen}".mb_substr($_data, 6, 4);
break;
case 11:
$maskingValue = mb_substr($_data, 0, 3)."{$useHyphen}****{$useHyphen}".mb_substr($_data, 7, 4);
break;
default:
trigger_error('Not a known format parametter in function', E_USER_NOTICE);
break;
}
}else{
trigger_error('Masking Function Parameter Error', E_USER_NOTICE);
}
return $maskingValue;
}
masking 소스코드 구요.
원래 인코딩이 utf-8인데 글씨가 깨져서 euc-kr로 변경 했습니다.
case 6은 원래 없던건데 제가 이름 길이를 따로 체크하고 case를 추가한 겁니다.
그리고 list.php에서 사용한 코드 입니다.
$list[$i][name] = lettermasking('N', $list[$i]['wr_name']);