[PHP-users 12305] PHPによる全角判定

moe php-users@php.gr.jp
Mon, 23 Dec 2002 22:04:59 +0900


こんにちは、

このたびPHPでWebサイトを作ることになりました。
そこでフォームから入力された文字列が、すべて全角か半角か判定する関数を作りま
した。
内部エンコーディングをEUC-JPに設定し
HTTP入力をautoに設定にしてあります。


とりあえず1文字を判定する関数として以下のものを作りました。

/* -----------------------------------------
 全角コードチェック
 return ture : 全角コードである
   false : 全角コードではない
   -------------------------------------- */
function isZenkakuCode($code) {
 $result = false;

 if(0xa1a1 <= $code && $code <= 0xfefe) {
  $result = true;
 }
 return $result;
}

そして上記の関数を使うルーチン

 if(isZenkakuCode('あ')) {
  echo "全角";
 } else {
  echo "全角以外";
 }

を組み込みテストしましたが、「全角以外」と表示されてしまいます。
やはり設定した「あ」の1バイト目のみが判定の対象となっているのでしょうか?
設定した「あ」の文字コードを判定の対象にしたい場合、どうすればよいのでしょう
か?
この目的を遂行するスマートなやりかたを教えていただけると助かります。
ご教授お願いいたします。

/* --------------------------------
おちゃ
e-mail: moe@yuri.sakura.ne.jp
-------------------------------- */