phpで文字列を部分的に取得するとき

phpで文字列のいち部分を取得したいときは、substrmb_substrを使用します。

substr
string substr(string string, int start [, int length])
mb_substr
string mb_substr(string str, int start [, int length [, string encoding]])

この2つの違いは、

  • substr => バイト数でカウント。半角1文字で1バイト、全角1文字で2バイト。

  • mb_substr => 文字数でカウント。全角も半角も1文字としてカウント。

という点です。

substrを使うと中途半端に取りだした文字が文字化けをしたりするのでmb_substrのほうがおすすめです。