[PHP-users 32376] Re: mb_strcutの挙動について
KUROSAKI Luka
luka @ ivoryworks.com
2007年 7月 4日 (水) 18:08:16 JST
こんにちは。
黒咲です。
ちゃんと確認していないのですけど、
<?php
$strings = 'あいうえおかきくけこ';
echo mb_strcut($strings, 1, 20, "EUC-JP")
/* 結果:あいうえおかきくけ */
?>
mb_strcut()は、その第2パラメータがマルチバイト文字の2バイト目以降を指
している場合、処理開始位置をマルチバイト文字の1バイト目にシフトする仕様
ですが、mb_strcut()内の処理で、シフトした際に文字列終端までの長さ(シフト
前の処理開始位置から文字列終端までの長さを元にしている?)が更新されていな
い為、上記例なら'こ'の1バイト目が処理終了位置となってしまい、結果として'
こ'が切り飛ばされてしまっているのではないか思います。
うまく説明できない。
mbfl_strcut()のstartとendの扱いが良くないのかも。
違っていたらすみません。
PHP-users メーリングリストの案内