테스트 사이트 - 개발 중인 베타 버전입니다

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

스산이조아 1년 전 조회 1,896

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

전화번호 값은 필드하나로 받아서 000-0000-0000 또는 00000000000 등으로 입력되어 있습니다. https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=21&page=5 위 강좌에 나와 있는 내용은 확인했는데, 뒷자리만 보이게 하는 내용은 없어서 어떻게 해야할지 문의 드립니다.  

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
포이치
1년 전

</p>

<p>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자리 마스킹

}</p>

<p>

echo mask_tel('01045455555');

//결과 010-****-5555</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

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

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 이런식으로 잘 나옵니다. ~~
s
sinbi
1년 전
위처럼 하나하나 적을 필요 없이. 아래처럼 하시면 될 듯..

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

댓글을 작성하려면 로그인이 필요합니다.

도움 많이되었습니다.감사합니다~!

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

1년 전

안녕하세요.

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

 

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

댓글을 작성하려면 로그인이 필요합니다.

그누위즈

</p>

<p>function processedPhoneNumber($phoneNumber){

  // 숫자만 남기고 모든 문자를 제거

  $onlyNumericalPhoneNumber = preg_replace("/[^0-9]/", '', $phoneNumber);

  

  // 마지막 4자리 숫자를 가져옴

  $lastFourDigits = substr($onlyNumericalPhoneNumber, -4);</p>

<p>  // 마지막 4자리를 제외한 나머지 부분을 가져옴

  $maskedPart = substr($onlyNumericalPhoneNumber, 0, -4);</p>

<p>  

  // 마지막 4자리를 제외한 부분을 *로 마스킹

  $maskedPart = str_repeat("*", strlen($maskedPart));

  

  // 마스킹한 부분과 마지막 4자리 숫자를 합침

  $processedPhoneNumber = $maskedPart . $lastFourDigits;

  

  return $processedPhoneNumber;

}</p>

<p> </p>

<p>// 사용법</p>

<p>$phoneNumber = "123-4567-8901";

echo processedPhoneNumber($phoneNumber);</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인