#文字のバイトによる長さか文字の数か
コード
echo strlen('アイウエオ').PHP_EOL; //15
echo strlen('ア').PHP_EOL;//3
echo strlen('a').PHP_EOL;//1
echo strlen('あ').PHP_EOL;//3
echo mb_strlen('アイウエオ').PHP_EOL;//5
echo mb_strlen('ア').PHP_EOL;//1
echo mb_strlen('a').PHP_EOL;//1
echo mb_strlen('あ').PHP_EOL;//1
echo substr('アイウエオ',0,1).PHP_EOL;//�
echo substr('ア',0,1).PHP_EOL;//�
echo substr('a',0,1).PHP_EOL;//a
echo substr('あ',0,3).PHP_EOL;//あ
echo mb_substr('アイウエオ',0,1).PHP_EOL;//ア
echo mb_substr('ア',0,1).PHP_EOL;//ア
echo mb_substr('a',0,1).PHP_EOL;//a
echo mb_substr('あ',0,3).PHP_EOL;//あ
substrとmb_substrは第一引数で指定した文字列の第二引数で指定した位置から第三引数で指定したバイト数(mb_substrでは文字数)分の文字を出力する。
substrでは第三引数を1とするとバイトが3の日本語はエラーになる