KBoardで作成者の名前の最初の文字と最後の文字だけを表示するようにする方法

Last Updated: 2020 年 07 月 18 日 1のコメント

Kboard

上の図は、 WordPress 掲示板プラグイン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;
//가나다라마...

参照


1のコメント

コメント