PHPで文字列を指定した文字数に丸める方法(mb_strimwidth)が簡単なのにアッサリ忘れるので備忘録

 

文字を出力するにあたり、結構な頻度で文字出力数制限がある。
よくある文字省略で点々表記になっているやつです。

例:
文字数が100文字を超えるとどうしてもデザイン的に困ってしまうので
適当な文字数になったらそれ以降の文字を省略しようと思うので…

こんなかんじですねw

 

一行でサクッとできちゃうのです!

<?php
echo mb_strimwidth("文字をしっかりまるめちゃうのです!", 0, 10, "...");
// 文字を... と出力します
?>

出力結果で分かるように、省略した後に付ける文字を含めて10バイトです。
日本語の場合は1文字で2バイトになります。

おいおい!ふざけんなよ文字化けするじゃねぇか

早速、試してみたら文字化けして意味がわかんねぇじゃねぇか!
となったのは私です( ー`дー´)キリッ

mb_strimwidthの文字化けは結構起こりますが対策は簡単!

 

mb_strimwidthの文字化け対策

<?php
echo mb_strimwidth("文字をしっかりまるめちゃうのです!", 0, 10, "...", utf8);
// 文字化け対策完了(`・ω・´)ゞ
?>

最後に文字コードを追加するだけです!これで私は解決しましたよ!

投稿日: 2012/02/18
最終更新日: 2015/12/29
 
筆者のご紹介
角政典@moreiic
真性のお家大好きフリーランスです。プログラムよりご飯の方が断然好き!博多出身のデブデザイナー。インドアだけど遊んでくれる人募集中!
よく検索されてる記事