본문 바로가기
IT 인터넷

[PHP] 이름 일부 가리는 함수

by zzom~ 2024. 10. 12.
반응형

 

게시판이나 기타 개인정보를 일부만 보여줘야하는 상황이 발생할 경우

 

2글자일때는 뒤에 하나 별, 세글자는 가운데 하나, 네글자는 가운데 둘...이런식으로 별표로 가려줄 때 사용

이름뿐 아니라 전화번호 마스킹 등에도 사용할 수 있음

function mytory_asterisk($string) {
	$string = trim($string);
	$length = mb_strlen($string, 'utf-8');
	$string_changed = $string;
	if ($length <= 2) {
		// 한두 글자면 그냥 뒤에 별표 붙여서 내보낸다.
		$string_changed = mb_substr($string, 0, 1, 'utf-8') . '*';
	}
	if ($length >= 3) {
		// 3으로 나눠서 앞뒤.
		$leave_length = floor($length/3); 
		// 남겨 둘 길이. 반올림하니 너무 많이 남기게 돼, 내림으로 해서 남기는 걸 줄였다.
		$asterisk_length = $length - ($leave_length * 2);
		$offset = $leave_length + $asterisk_length;
		$head = mb_substr($string, 0, $leave_length, 'utf-8');
		$tail = mb_substr($string, $offset, $leave_length, 'utf-8');
		$string_changed = $head . implode('', array_fill(0, $asterisk_length, '*')) . $tail;
	}
	return $string_changed;
}

 

반응형