文字列が日本語かどうか調べる方法について - PHPプロ!Q&A掲示板
PHPでフォームの値で名前を受け取るときに、日本語かどうかをチェックしたいのですが、以下のように記述する方法しか知らなくて、大丈夫だと思っていたところ、日本語漢字「田」(田んぼの田です)を入力したときに、うまく判定できないのです。(たとえば、石田太郎、と名前をいれると日本語と判定してほしいところうまくいきません。PCからチェックしたところ、他の文字でもダメな場合もあり、カタカナだとさっぱりうまくいきません。)
根本的に間違っているんだと思います…。HTMLタグや改行文字の置換えをする関数も間に入れているので、自分で原因を探るのにがんばってみたのですが…。
何分、勉強しはじめたところで、解決法が見つけれなくて困っています。
どなたか教えていただけないでしょうか?
- $name = $_REQUEST['name'];//名前を受け取る
- //名前の文字をCSVに保存するため整形する関数
- function mojifilter(&$str){
- $str = str_replace(",", "、" ,$str);
- $str = nl2br($str);
- $str = str_replace("\n", "", $str);
- $str = str_replace("\r", "", $str);
- $str = stripslashes($str);
- $str = mb_convert_kana($str,"KVas","Shift_jis");
- $str = htmlspecialchars($str,ENT_QUOTES);
- return $str;
- }
- mojifilter($name);
- //英数字が使われていたらエラーメッセージ
- if(preg_match("/[0-9a-zA-Z]/", $name) == 1){
- $check = FALSE;
- $error = "お名前に英数字は使えません。";
- }
よろしくお願いします。
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。




ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!