[PHP-users 27288] Re: マルチバイト文字列のバイト数を得たい

tommy tommy @ asobicreate.com
2005年 10月 24日 (月) 19:42:55 JST


富沢です。

表題の件、色々とアイディアを頂きましてありがとうございました。このうち、
mb_strcutですが、マニュアルを見る限り文字数のカウントに関しては
mb_substrと同じ半角でもマルチバイトでも1文字とカウントするものだと
思い込んでました。それを踏まえて各関数を検証してみました。

$test = "1234567890アイウエオ1234567890";(アイウエオは半角カナ。40byteの文字列)
print "substr=[".substr($test,0,39)."]\n";
print "mb_substr=[".mb_substr($test,0,39)."]\n";
print "mb_strimwidth=[".mb_strimwidth($test,0,39,"")."]\n";
print "mb_strcut=[".mb_strcut($test,0,39)."]\n";

結果は
substr=[1234567890アイウエオ123456789・(末尾化け)
mb_substr=[1234567890アイウエオ1234567890]
mb_strimwidth=[1234567890アイウエオ1234567890]
mb_strcut=[1234567890アイウエオ123456789]

という事で、mb_strcutが期待通りの動作をしているようです。
この関数は説明を読んだだけで今まで使った事がありませんでした。

ともかく関数一発でこの処理ができると思っていませんでした。
感動しました。





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