2007/10/21 日曜日

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

Filed under: Smarty — ne-zu @ 23:57:09 このエントリをはてなブックマークに追加

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

SMARTY:
  1. {$hoge|mb_strimwidth:0:15:"..."|escape}

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

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

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

関連する記事:

Powered by

コメント (3) »

  1. […] http://www.php-seed.net/blog/archives/118 […]

    ピンバック by B豚の備忘録 - 【EC-CUBE】SMARTYでマルチバイト文字を丸める(字数制限を利用する) — 2008/12/25 木曜日 @ 15:00:50

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

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

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

    コメント by 通りすがり — 2009/10/1 木曜日 @ 18:07:21

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

    コメント by ne-zu — 2009/10/2 金曜日 @ 18:36:45

コメント RSS トラックバック URL

コメントをどうぞ

Powered by PHP-SeeD and WordPress ME