新サイト(はてなブログ)

タイトルを指定文字数で切り詰め(mb_strimwidth)

タイトルが長くて困った事はないですか?
当サイトでは過去ログ一覧のタイトル表示において、タイトル部に画像を使っていて、カテゴリも合わせて表示させているので長いタイトルだと2行にわたる事があります。そして見栄えが激しく悪くなります。そこで色々調べてみました。
php化したことにより、初めてphpらしきものを使って、タイトル部を指定文字だけ表示して残りは切り捨てる関数を使いました。
mb_strimwidth()
という関数でやります。では実際に使ってみましょう。


mb_strimwidth関数の使い方

mb_strimwidth(【文字列】,【始まりのバイト位置】,【最大バイト数】,【カットした後に表示する文字列】,【エンコード】)
このように指定します。
エンコードは、utf-8だと「utf8」、eucだと「euc」と指定、タイトルを50バイトでカットしたかったので、以下のようにやってみました。
<?php
$str = "<$MTEntryTitle$>";
$str = mb_strimwidth ($str, 0, 50, "…",utf8);
?>
<?php echo($str);?>
これで結果は・・・
mb_str.jpg このように「…」がついて省略されて表示されます。これで長いタイトルもレイアウトを気にせずに書けますね。
しかし、これって重くなるのかなあ。