본문 바로가기

WEB/PHP

php 텍스트 별표 바꾸기


참조 

  1. 끝의 세 글자 별표변경
  2. [PHP] 문자열 가운데 별표치는 함수
  3. 이름이나 전화번호 중간 부분을 별표 *** 표시로 숨기기

 

이름에 가운데 문자를 *로 변경하고 싶었다.

1번 예제는 일반적인 방식으로 텍스트를 변경하는것이지만

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;
}
사용코드
<?php
	echo mytory_asterisk($변수)
?>

함수적용후 결과

 

 

반응형

'WEB > PHP' 카테고리의 다른 글

PHP uniqid 고유값 유니크값 난수값 생성하기  (0) 2019.12.17
PHP 배열 이중 반복문 예제  (0) 2019.03.19