質問: "あああaあ"; $str2 ="aaaaaaaaa"; function hoge($str) { return mb_substr($str, 0, 5); } これだと表示した場合に あああaあ aaaaa となってしまいます。 mb_substrをsubstrにすると2バイト文字の途中をsubstrで指定してしまうと文字化けしてしまいます。 何かうまい回避方法はないでしょうか? よろしくお願いいたします。
回答: なんかすごく簡単な方法があるような気がしますが、ぱっとおもいつかない ので、以下のような方法でどうでしょうか? "; $str2 ="aaaaaaaaaabbbbbbbbbbb"; print left($str2,10).""; function left($str,$len){ if(strlen($str)<=$len) return $str; $str=substr($str,0,$len+1); $str=mb_substr($str,0,mb_strlen($str,"euc-jp")-1,"euc-jp"); return $str; } ?>