Kboard

KBoard에서 작성자 이름 첫 글자와 마지막 글자만 표시되도록 하는 방법

Kboard위의 그림은 워드프레스 게시판 플러그인인 KBoard에서 사용자가 글을 올렸을 때 승인 대기 중을 나타내는 화면합니다(여기 참고). 승인 전인 글의 작성자의 이름을 “홍*동”과 같이 부분적으로 표시(일부 글자를 별표로 처리)하고자 하는 경우 다음과 같은 형식의 코드를 사용합니다.

mb_internal_encoding(mb_detect_encoding($content->member_display,'UTF-8,EUC-KR'));
echo ($len=mb_strlen($content->member_display))>2 ? mb_substr($content->member_display,0,1).str_repeat('*',$len-2).mb_substr($content->member_display,-1,1) : $content->member_display;

“홍**”처럼 이름의 첫 글자(성)만 표시되고 나머지는 별표(*)로 표시하려면 다음과 같이 뒷 수분을 바꾸면 됩니다.

echo ($len=mb_strlen($content->member_display))>1 ? mb_substr($content->member_display,0,1).str_repeat('*',$len-1) : $content->member_display;

위의 코드는 http://phpschool.com/에 나와 있는 코드를 이용한 것입니다.

$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']; // 데****스

참고로 요약문(Excerpt) 등에서 글의 특정 부분만을 나타낼 때 substr 함수를 사용할 경우 한글이 깨지는 경우가 있습니다. 이런 경우 mb_strimwidth를 사용하면 글자가 깨지지 않고 제대로 표시됩니다.

$text = '가나다라마바사';
$strim = mb_strimwidth($text, '0', '5', '...', 'utf-8');
echo $strim;
//가나다라마...



기부를 통해 이 블로그를 후원하실 수 있습니다.
워드프레스 설치/제작/문제해결이 필요한 경우 서비스(유료)를 요청해주세요.