[PHP-users 1321] Re: 全角カナの確認

Osamu Shigematsu php-users@php.gr.jp
Tue, 21 Aug 2001 15:29:19 +0900


重松です。

> 携帯から送られてくる文字(SJISと決まっている。)で、
> SJISの全角カナかどうかの確認をしたいのですが、
> 以下の考えではうまくいかず、
> 
> if(!ereg('([アイウエオ・・・・])',$p_rubi,$regs)){ ・・・ }

mbereg() にするとか。ereg だと、「ア」って一文字ではないし、さらに SJIS 書い
てあったりすると 2 バイト目に「\」(0x5c) がくることもあったりしますよ。たと
えば、「ソ」とか「表」とか。

if(!mbereg("^[0-9A-Za-zァ-ヶ\s]*$",$p_rubi)){
    die("使えない文字を発見");
}

というか、あ〜んまで列挙してあったら、それはそれですごいかも。

> SJISの全角カナかどうかを確認する為には、
> どうしたら言いのでしょうか?

SJIS のコード体系を調べて、最初から 1 バイトずつ、調べていけばいいだけでは?
ふぐ本あたり、参考になるのではないかと思います。:-)

著者の Ken Lunde 氏のページ
http://www.oreilly.com/people/authors/lunde/


-- 
Osamu Shigematsu

http://www.ravi.ne.jp/
mailto:shige@ravi.ne.jp