전화번호 뒤 4자리만 보이고 앞자리는 "***" 처리 하려면 어떻게 해야할까요?

전화번호 뒤 4자리만 보이고 앞자리는 "***" 처리 하려면 어떻게 해야할까요?

QA

전화번호 뒤 4자리만 보이고 앞자리는 "***" 처리 하려면 어떻게 해야할까요?

본문

안녕하세요.
전화번호에서 뒤 4자리만 보이고 앞자리는 *** 으로 보이게 하고 싶습니다.

전화번호 값은 필드하나로 받아서 000-0000-0000 또는 00000000000 등으로 입력되어 있습니다.

https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=21&page=5
위 강좌에 나와 있는 내용은 확인했는데, 뒷자리만 보이게 하는 내용은 없어서 어떻게 해야할지 문의 드립니다.
 

이 질문에 댓글 쓰기 :

답변 4


function mask_tel($phone) {
    $phone = preg_replace("/[^0-9]/", "", $phone); //숫자외 제거
    $phone = preg_replace("/([0-9]{3})([0-9]{4})([0-9]{4})/", "$1-$2-$3", $phone); //하이픈 넣어줌
    return preg_replace('/([0-9]+)-([0-9]+)-([0-9]{4})/', '${1}-****-$3', $phone); //정규식으로 중간 4자리 마스킹
}

echo mask_tel('*** 개인정보보호를 위한 휴대폰번호 노출방지 ***');
//결과 010-****-5555

감사합니다. ~~!!
말씀해주신 내용 참고해서 아래와 같이 적용해서 성공했습니다.

if (!$is_admin && $list[$i]['fm_dadtel']) {
$list[$i]['fm_dadtel'] = preg_replace("/[^0-9]/", "", $list[$i]['fm_dadtel']); //숫자외 제거
$list[$i]['fm_dadtel'] = preg_replace("/([0-9]{3})([0-9]{4})([0-9]{4})/", "$1-$2-$3", $list[$i]['fm_dadtel']); //하이픈 넣어줌
$list[$i]['fm_dadtel'] = preg_replace('/([0-9]+)-([0-9]+)-([0-9]{4})/', '${1}-****-$3', $list[$i]['fm_dadtel']); //정규식으로 중간 4자리 마스킹
}


<?php echo $list[$i]['fm_dadtel'] ?>


010-****-0000 이런식으로 잘 나옵니다. ~~

위처럼 하나하나 적을 필요 없이. 아래처럼 하시면 될 듯..

function mask_tel($phone) {
    $phone = preg_replace("/[^0-9]/", "", $phone); //숫자외 제거
    $phone = preg_replace("/([0-9]{3})([0-9]{4})([0-9]{3,4})/", "$1-$2-$3", $phone); //하이픈 넣어줌
    return preg_replace('/([0-9]+)-([0-9]+)-([0-9]{4})/', '${1}-****-$3', $phone); //정규식으로 중간 4자리 마스킹
}

if (!$is_admin && $list[$i]['fm_dadtel']) {
    $list[$i]['fm_dadtel'] = mask_tel($list[$i]['fm_dadtel']);
}


function processedPhoneNumber($phoneNumber){
  // 숫자만 남기고 모든 문자를 제거
  $onlyNumericalPhoneNumber = preg_replace("/[^0-9]/", '', $phoneNumber);
  
  // 마지막 4자리 숫자를 가져옴
  $lastFourDigits = substr($onlyNumericalPhoneNumber, -4);
  // 마지막 4자리를 제외한 나머지 부분을 가져옴
  $maskedPart = substr($onlyNumericalPhoneNumber, 0, -4);
  
  // 마지막 4자리를 제외한 부분을 *로 마스킹
  $maskedPart = str_repeat("*", strlen($maskedPart));
  
  // 마스킹한 부분과 마지막 4자리 숫자를 합침
  $processedPhoneNumber = $maskedPart . $lastFourDigits;
  
  return $processedPhoneNumber;
}
 
// 사용법
$phoneNumber = "123-4567-8901";
echo processedPhoneNumber($phoneNumber);

답변감사합니다.!!
제가 php를 잘 몰라서 그누보드에 어떻게 적용해야 잘 모르겠습니다.
아래예처럼 그누보드에 적용해서 설명가능할까요?

if (!$is_admin && $list[$i]['wr_1']) {
    $list[$i]['wr_1'] = substr($list[$i]['wr_1'],0,-4)."****";
}

안녕하세요.

아래의 내용도 참고를 해보세요~

 

https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=21&page=5

 

답변감사합니다.
말씀하신 링크 참조해서 확인했습니다.
다만 제가 응용을 할 능력이 안되서, 위 내용에서 뒤 자리만 나오게 하는 내용이 없어서 문의드립니다.

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

회원로그인

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