Smartyで日本語などのマルチバイト文字の丸め。


Smartyで文字を丸める時は、truncate修飾子などを使いますが、残念ながら日本語などのマルチバイトに対応していません。
ですが、PHPの関数をそのまま使用できるので、マルチバイト対応のmb_strimwidthを使ってみてはどうでしょうか。

[smarty]
{$hoge|mb_strimwidth:0:15:”…”|escape}
[/smarty]

無事丸められましたでしょうか。

mb_strlenのような文字数と勘違いしてましたが、mb_strwidthで得られるのと同じ、文字なんですよね。

自分でオリジナルの修飾子を作るのも良いと思います。

関連する記事:

  1. 本当に自分で動作するか確認しましたか?「mb_strimwidth」ってPHPのマニュアルを一度読むことをお勧めします。
    本当に文字数で表示の制限が出来るのかを。

    mb_strimwidth — 指定した幅で文字列を丸める

    文字数とは何処にも書かれていません。「文字幅」です。
    意味分かりますか?

  2. 文字数ではなく幅ですね。
    失礼しました。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">