[PHP-users 32387] Re: mb_strcutの挙動について

KUROSAKI Luka luka @ ivoryworks.com
2007年 7月 9日 (月) 10:30:18 JST


黒咲です。

> mb_strcut($string, 3, 10) で、
> 元の文字列の10バイト目で終わるという指定をさせているけど、
> 中では3バイト目から7バイトを切り取るようになっているのではないか
> ということでいいのですよね?

 うまく伝わっているか不安ですが、2byte目から7byte目が切り取られます。
(長さ10は文字列長を超えていますので、内部的に9となっていると思います)

  'あいうえお' (EUC-JP)

 文字列長10(0byte〜9byte)で、
mb_strcut($string, 3, 10);
とした場合、開始位置3は'い'の2byte目を指しているので、開始位置は2('い'の
1byte目)にシフトします。その際に、終了位置9('お'の2byte目)が8('お'の
1byte目)になっているのではないかと言っています。
 結果として、'いうえ' になります。

> mbfl_strcutというのはPHPのソース側での関数でしょうか?

 そうです。でもあれ以来よく見ていません。すみません。




PHP-users メーリングリストの案内