전화번호 뒤 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
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);
도움 많이되었습니다.감사합니다~!
답변을 작성하시기 전에 로그인 해주세요.