- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:全角、半角の判別)
PHPで全角・半角の判別とエラー表示について
このQ&Aのポイント
- PHPを使用して、全角・半角の判別とエラー表示を行いたいです。便利な関数や処理方法を教えてください。
- i18n_ja_jp_hantozenを使用して全角を半角に変換する方法も考えましたが、特殊文字の場合は文字化けの可能性があるため、エラー表示をしたいです。
- 環境はRedhatLinux6.2J、apache-1.3.12-0jp1、php-3.0.15_i18n_ja-0vl2、postgresql-7.0.2-2.i386です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
半角文字が・・・とおっしゃられてますが、半角文字自体の定義が結構曖昧です。 表示上で半角表示されても、実際の文字コード上では2バイト文字の場合もありますので・・・ 実際、EUCでは半角カナも2バイトコードに割り当てられるようですし、UTF8では当然のごとく2バイト使用します んで、とりあえず、どんな文字であれ、バイト列には変わり無いわけなんで・・・ # ソースコードはEUCで保存。別の文字コードで保存する場合は # i18n_convertの第2引数を変更 if(!mbereg("^[A-Za-z0-9ア-ン]+$", i18n_convert($string, "EUC")) { # 半角以外の文字が存在した場合の処理 } こんな感じで通らないでしょうか? mberegの第一引数は適当に決めたので漏れがたっぷりあると思いますので、文字コード表を参照して適当に埋めてください
お礼
レスありがとうございます。 早速おしえていただきました方法で試したいと思います。 # i18n_convertの第2引数を変更 if(!mbereg("^[A-Za-z0-9ア-ン]+$", i18n_convert($string, "EUC")) { # 半角以外の文字が存在した場合の処理 } のmberegの因数がチェックする文字列になるのですね。 文字コードを眺めながらいろいろ試そうと思います。 ありがとうございました。