• ベストアンサー

全角(2文字)・半角(1文字)としてカウントする方法

こんばんは。 PHPで文字数をカウントする場合に、下記の例のように、全角を2文字、半角を1文字としてカウントしたい場合はどのように書けば良いでしょうか? ご存知の方、お返事頂けましたら幸いです。 例: あいうeo = 8 aiueo = 5

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

ShiftJIS や EUC なら、strlen でOKです。 UTF-8 を使ってるなら、一旦 ShiftJISかEUC に変換してからstrlen print strlen(mb_convert_encoding("あいうeo", "sjis"));

anbsd
質問者

お礼

お返事ありがとうございます。 UTF8でstrlenを使うと、意図したようなカウントをしてくれなかったのですが、SJISに変換したところ、正常にカウントしてくれました。 ありがとうございました。

その他の回答 (1)

noname#108428
noname#108428
回答No.1

正規表現を用いて、 2とカウントしたい文字であると判定できたら、 文字数を格納する変数の値を++する、でokですよ。

anbsd
質問者

お礼

お返事ありがとうございます。 参考にさせて頂きます。

関連するQ&A