文字の一部だけを取得するmb_substr関数で文字化けする場合の対処法。


PHPメモです。
トップページ載せるブログの一覧とかで記事の抜粋を表示する場合ありますよね。
先頭から30文字程度を抜き出して一覧に表示するということはよくあると思いますが、
その時に使うPHP関数がmb_substrです。
使い方自体は簡単ですが、何も気にせず使うとこのように文字化けしちゃうことがあります。
ブログ一覧
テキストの最後の部分が文字化けしている。

日本語を扱う場合は事前にmb_internal_encodingを使って文字コードを指定してあげるといいです。
$valueに対して先頭から36文字抜き出して最後に’…’をつけています。

mb_internal_encoding("UTF-8");
echo mb_substr($value, 0, 36).'...';

これで、
ブログ一覧
このようにきちんと表示されるようになります。