프로그램개발/ServerSide(PHP,Node.js)

이름 별표(*) 로 변경하는 것

크레도스 2017. 9. 1. 17:51

출처 : http://www.seobangnim.com/zbxe/592906


UTF-8 기준입니다. 참고로 막 패턴입니다.

echo preg_replace('/.(?!.)/u','○','홍길동'); // 홍길○
echo preg_replace('/.(?=.)/u','○','홍길동'); // ○○동
echo preg_replace('/.(?!..)/u','○','홍길동'); // 홍○○
echo preg_replace('/.(?=.$)/u','○','홍길동'); // 홍○동
echo preg_replace('/.(?!..)/u','○','홍길동'); // 홍○○
echo preg_replace('/.(?!.$)/u','○','홍길동'); // ○길○
echo preg_replace('/./u','○','홍길동'); // ○○○

‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥

$view['name'] = '홍길동';
mb_internal_encoding(mb_detect_encoding($view['name'],'UTF-8,EUC-KR'));
echo ($len=mb_strlen($view['name']))>2 ? mb_substr($view['name'],0,1).str_repeat('*',$len-2).mb_substr($view['name'],-1,1) : $view['name']; // 홍*동

$view['name'] = '비혼';
mb_internal_encoding(mb_detect_encoding($view['name'],'UTF-8,EUC-KR'));
echo ($len=mb_strlen($view['name']))>2 ? mb_substr($view['name'],0,1).str_repeat('*',$len-2).mb_substr($view['name'],-1,1) : $view['name']; // 비혼

$view['name'] = '데이터베이스';
mb_internal_encoding(mb_detect_encoding($view['name'],'UTF-8,EUC-KR'));
echo ($len=mb_strlen($view['name']))>2 ? mb_substr($view['name'],0,1).str_repeat('*',$len-2).mb_substr($view['name'],-1,1) : $view['name']; // 데****스

그 외 다양한 방법이 있습니다만 생략합니다.