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

phpの関数で文字を丸める簡単な方法です。mb_strimwidthを使うことで文字を指定文字数に丸めることができます!mb_strimwidth文字化け対策も忘れずに!
投稿日: 2012/02/18
最終更新日: 2015/12/29
 

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

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

こんなかんじですねw

 

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

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

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

Samsung microSDカード 32GB EVO Plus Class10 UHS-I対応 スマホ
\1,680-.
【Amazon.co.jp限定】Transcend microSDHCカード 32GB Class10 U
\1,880-.
【Amazon.co.jp限定】Transcend SDHCカード 32GB Class10 UHS-I
\2,700-.
TOSHIBA SDHCカード 32GB Class10 UHS-I対応 (最大転送速度40MB/
\1,500-.
Team Micro SDHC/SDXC UHS-1 COLOR CARDシリーズ
\42,028-.
東芝 Toshiba 超高速U3 4K対応 microSDHC 32GB + SD アダプター
\1,599-.

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

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

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

 

mb_strimwidthの文字化け対策

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

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

 
ぷろめしはSNSもやってますよ!
SNSでも情報を発信していたり、してなかったりします!お暇なときにでも覗いてみてください。ぜひ、記事のはてぶもして下さい! 
このエントリーをはてなブックマークに追加
筆者のご紹介
角政典@moreiic
真性のお家大好きフリーランスです。プログラムよりご飯の方が断然好き!博多出身のデブデザイナー。インドアだけど遊んでくれる人募集中!
よく検索されてる記事