[PHP-users 35493] ereg関数:[留学]と[嘘]の一致について

Kumiko ENOMOTO kijibato @ nifty.com
2011年 2月 20日 (日) 16:44:43 JST


お世話になります。

ブラウザ(EUCで作成されたHTML)のテキストエリアに
ユーザーが入力した文字列について、
PHPプログラム内で禁止ワードチェックを行っています。

ereg関数を使用しているのですが、
「留学」と「嘘」が一致してしまいます。
PHPプログラム内で「留学」という文字列を直接指定しても同じです。

// 禁止ワード配列
$ngwords = array("馬鹿","嘘","阿呆");
// ブラウザ上で入力された文字列
$incmnt = "留学";
$cntng = count($ngwords);	
for ($n=0; $n<$cntng; $n++){
    if (ereg($ngwords[$n], $incmnt) == true){
      print "禁止ワードあり";
      exit;
    }
}

「留」や「学」の漢字が単体だと一致せず、
以下のような通常の比較の場合は、
「留学」と「嘘」は当然一致しません。

if ($ngwords[$n] == $incmnt) {
  print "禁止ワードあり";
  exit;
}

何が原因と思われますか?
ご教授のほど、よろしくお願いします。


榎本久美子



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