smartyのtruncate修飾子は指定した文字数で文章を切って、切ったらその後に”・・・”など任意の文字を追加してくれる便利な修飾子です。 しかしそのtruncateもマルチバイトに対応していないようで、日本語に適用すると切ったところが微妙に文字化けしたりする場合があるんですよね。そういうわけでマルチバイト対応のtruncateを作ってみました。 function smarty_modifier_mb_truncate($string, $length = 80, $etc = '...') { if ($length == 0) return ''; if (mb_strlen($string,"UTF-8") > $length) { $string = mb_substr($string, 0, $length,"UTF-8"); return $string.$etc; } e
![smartyでマルチバイトに対応したtruncate修飾子 - Webtech Walker](https://cdn-ak-scissors.b.st-hatena.com/image/square/c4c16447eff126477daf44f3258b48b98d139942/height=288;version=1;width=512/http%3A%2F%2Fwebtech-walker.com%2Fimg%2Fcommon%2Ficon.png)