文字列の一部を取得する mb_substr の動作について
全角半角が混在する文字列を操作する場合の実行結果を確認する。
文字列の文字コードは UTF-8 とする。
<?php $string = 'AあBいCDうEえFおG'; // 予想では「AあBいC」が抜き出される $after = mb_substr($string, 0, 5); printf('<p>文字コードを指定しない場合: %s</p>', $after); $after = mb_substr($string, 0, 5, 'UTF-8'); printf('<p>文字コードを指定した場合: %s</p>', $after); ?>
実行結果。
文字コードを指定しない場合: AあB 文字コードを指定した場合: AあBいC
マルチバイトの場合、文字列の文字コードを指定した方がいい。