masking 함수 홍O동

masking 함수 홍O동

QA

masking 함수 홍O동

본문

masking 함수를 사용해서 이름을 홍길동 -> 홍O동으료 출력을 할려고 하는데요.

인코딩을 UTF-8로 하니까 글씨가 깨져서 인코딩을 EUC-KR로 변경하고 보니까

이름이 표시될때 홍OO으로 표시되는데 이걸 홍O동으로 표시하려면 masking 함수에 어디를 수정해야 되나요?

이 질문에 댓글 쓰기 :

답변 3

$_data='홍길동';

echo '<br />', mb_substr( $_data, 0, 1 ).'O'.mb_substr( $_data, 2 );

 

이렇게 해보세요.

https://dev4us.tistory.com/7

 

이걸 한번 참고해보세요.

답변 감사합니다.
알려주신 링크를 사용을 해봤는데요. 그래도 이름 표시가 홍OO으로 만 나오네요 ㅜㅜ
홍O동 이렇게 나와야 되는데. 이것 저것 건드려 봤는데 안되니 답답하네요

해보신 소스를 올려 보세요.

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']);

답변을 작성하시기 전에 로그인 해주세요.
전체 27
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT