• ベストアンサー

英数字の文字列に対してエラーをだしたい

phpを使って簡易な掲示板を運営しています。 先日よりやたらと海外からの書き込みがあります。 書き込まれた際に英数字のみで書かれた内容にはエラーを出すような便利な関数はないでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • oskosn
  • ベストアンサー率100% (3/3)
回答No.2

こんな方法もあります。 if(mb_detect_encoding($body,"ASCII,SJIS")=="SJIS"){ #日本語有りの処理 }else{ #ASCIIの処理 } 自前の掲示板では投稿される前に投稿フォーム自体を出さない方法を併用しています。(投稿フォームがPHPでなければ出来ませんが…) if(!preg_match("/ja/i",$_SERVER[HTTP_ACCEPT_LANGUAGE],$dum)){ # 日本語のブラウザでアクセスしてくださいとの表示 }else{ # フォーム表示 }

その他の回答 (1)

回答No.1

とりあえずは・・・ if (eregi ("{a-zA-z0-9,./;:]@[-^!\"#$%&'()=~|`{*}?_><}", $data)) { ~英数字のみの時の処理~ } else { ~英数字以外が含まれていたときの処理~ } と言ったところでしょう。 しかしこれでは英語以外の文字(例えば英語以外のヨーロッパ言語文字でも良い)を 使われただけでクリアされてしまいますのでどれくらい効果があるかは分かりません。

melll
質問者

お礼

ありがとうございます。 これを逆に日本語が含まれている場合の処理などは可能なのでしょうか? 大手などの掲示板はどのように対処しているのですかね?・・・

関連するQ&A