現在の位置: ホーム> 最新記事一覧> 入力に数字と文字のみが含まれているかどうかを判断するための PHP の実践的な方法と例

入力に数字と文字のみが含まれているかどうかを判断するための PHP の実践的な方法と例

M66 2025-10-09

PHP 入力検証の重要性

PHP 開発プロセスでは、ユーザー入力データの合法性検証はシステムのセキュリティを確保するための重要な部分です。入力に特殊文字や記号が含まれている場合、SQL インジェクションや XSS 攻撃などのセキュリティ リスクにつながる可能性があります。このようなリスクを回避するには、通常、数字と文字のみを許可するなど、入力をフォーマットする必要があります。

正規表現を使用して入力を決定する

PHP では、正規表現を使用して、文字列に数字と文字のみが含まれているかどうかを簡単に判断できます。正規表現は強力なテキスト マッチング機能を提供し、入力検証を実装する一般的な手段です。

以下は、入力が文字と数字のみで構成されているかどうかを検出する単純な PHP 関数です。

 function isAlphaNumeric($input){
    return preg_match('/^[A-Za-z0-9]+$/', $input);
}

この関数はpreg_match()関数を使用して、入力が正規表現/^[A-Za-z0-9]+$/ と一致するかどうかをチェックします。で:

  • ^ は一致する文字列の先頭を示します
  • [A-Za-z0-9]+ は、大文字、小文字、数字で構成される 1 つ以上の文字と一致することを意味します
  • $ は一致した文字列の終わりを示します

つまり、この式により、入力文字列全体に文字または数字のみが含まれることが保証されます。

完全なコード例

次の例は、この関数を使用して入力コンテンツが正当かどうかを判断する方法を示しています。

 $input1 = "abc123";  // 法的インプット
$input2 = "abc@123";  // 不正な入力

if(isAlphaNumeric($input1)){
    echo "入力1数字と文字のみが含まれています";
}else{
    echo "入力1不正な文字が含まれています";
}

if(isAlphaNumeric($input2)){
    echo "入力2数字と文字のみが含まれています";
}else{
    echo "入力2不正な文字が含まれています";
}

実行結果は以下の通りです。

  • 入力 1 出力: 「入力 1 には数字と文字のみが含まれます」
  • 入力 2 の出力: 「入力 2 には不正な文字が含まれています」

この例を通じて、正規表現を使用して入力検証を実装する方法がシンプルかつ効率的であり、ユーザー名、パスワード、数値などのシナリオに適していることがわかります。

まとめ

PHP 開発では、入力検証によってプログラムの堅牢性が向上するだけでなく、セキュリティの脆弱性を効果的に防止できます。この記事では、正規表現を利用して入力内容に数字と文字のみが含まれているかどうかを判定する実装方法と例を紹介します。このスキルをマスターすると、実際のプロジェクトで入力セキュリティの問題に冷静に対処できるようになります。