Smartyで日本語などのマルチバイト文字の丸め。
Smartyで文字を丸める時は、truncate修飾子などを使いますが、残念ながら日本語などのマルチバイトに対応していません。
ですが、PHPの関数をそのまま使用できるので、マルチバイト対応のmb_strimwidthを使ってみてはどうでしょうか。
SMARTY:
-
{$hoge|mb_strimwidth:0:15:"..."|escape}
無事丸められましたでしょうか。
mb_strlenのような文字数と勘違いしてましたが、mb_strwidthで得られるのと同じ、文字幅なんですよね。
自分でオリジナルの修飾子を作るのも良いと思います。
関連する記事:
- Smartyで日本語などのマルチバイト文字をmb_strimwidthで丸める時の注意。
- Zend_Mail_Part で メール解析
- Zend_Validate_Alnumがなんかおかしい - 適当にメモったらこうなった
- ソースコードチェックツール pixy
- PHPでお手軽マルチタスクってできないの?
Powered by MightyAdsense
トラックバック URL :
[…] http://www.php-seed.net/blog/archives/118 […]
ピンバック by B豚の備忘録 - 【EC-CUBE】SMARTYでマルチバイト文字を丸める(字数制限を利用する) — 2008/12/25 木曜日 @ 15:00:50
本当に自分で動作するか確認しましたか?「mb_strimwidth」ってPHPのマニュアルを一度読むことをお勧めします。
本当に文字数で表示の制限が出来るのかを。
mb_strimwidth — 指定した幅で文字列を丸める
文字数とは何処にも書かれていません。「文字幅」です。
意味分かりますか?
コメント by 通りすがり — 2009/10/1 木曜日 @ 18:07:21
文字数ではなく幅ですね。
失礼しました。
コメント by ne-zu — 2009/10/2 金曜日 @ 18:36:45