マルチバイト処理でUTF-8などで2バイトや3バイト文字で長さが求めにくいことはありませんか?
mb_strcutで文字を加工したりしても半角や全角が混じり思う結果がでない場合あります。下記の方法はわりと上手く動いてます。
簡単に長さや指定文字数の取出しに使っています。
<?PHP function sub_cut($a,$ln,$st){ $sjis=mb_convert_encoding ($a,"SJIS","UTF-8"); //UTF8-->SJIS if ($ln) { //長さの指定なら $cut=mb_strcut($sjis,$st,$ln,"SJIS"); $utf8=mb_convert_encoding ($cut,"UTF-8","SJIS"); //SJIS-->UTF8 return $utf8; }else{ $moji=strlen(bin2hex($sjis))/2; //文字数 return $moji; } }文字数の取得は「Script雑感」様からの引用です。