2009年1月アーカイブ

一覧ページにダラダラと長い文章が入っているのは見づらい。
詳細ページに詳しく書いてあるんだから、ちょっとでいいんだよってときに
使いたいのが、Smartyの関数 「truncate」

よく使う方法は、{$string|truncate:20:"...More"} 
20文字で切り捨ててその後に...More と付け加える。

ただし、日本語などのマルチバイトで使用すると
たびたび最後の文字が文字化けを起こすという残念な関数でもある。

そこで、マルチバイト対応のtruncateを作るとよい。

関数は簡単で下記のコードだけ。
<?php
//文字の切捨て(マルチバイト対応) 
function smarty_modifier_mb_truncate($string, $length = 80, $etc = '...') {
if ($length == 0) {return '';}

if (mb_strlen($string) > $length) {
return mb_substr($string, 0, $length).$etc;
} else {
return $string;
}
}
?>

そして、上記のコードを「modifier.mb_truncate.php」という名前で保存し、
「smarty/libs/plugins」の中に入れればOK。

【ソース元】 詳細はこちら
マルチバイト文字に対応した truncate 修飾子を作る | バシャログ。

使い方はまったく同じ
{$string|mb_truncate:20:"...More"} 

知らずに危うく文字化け地獄にはまるところだった(笑)
いやーありがたい。

つうか、これくらい最初からSmartyにあっていいんじゃないの?

ウェブページ

★過去に製作したウェブサイト(一部紹介)
イビキノン
いびきでよく眠れない方のサプリ
日本トレーラーハウス協会
トレーラーハウスの協会(JTHA)
トレーラーハウスデベロップメント
トレーラーハウスの製造・販売 シュミレーションゴルフのレンタル スクリーンゴルフのレンタル
健楽ショップ 【ボイスリッチEX】
声が出にくい症状の方に朗報
早稲田大学 スキー部
2007年 インカレ総合優勝!
NPO体験学習支援センター
ブナの植林100年計画実行中
AJC油汚染研究所
油ゲル化剤オイルフェンスの販売
ジャズシンガー 奥土居美可
NYで絶賛されたジャズボーカル