UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#117 PHPのビルトイン関数filter_var()で、ユーザーからの入力値を検証

記入日:2023-05-05 編集日:2023-05-05

PHPのビルトイン関数filter_var()で、ユーザーからの入力値を検証してみようと思います。

この記事を読むと(約5分)
PHPのビルトイン関数filter_var()で、ユーザーからの入力値を検証する方法をイメージできます。

filter_var()で、ユーザーからの入力値を検証

filter_var()は、値が指定されたフィルターに合格するかどうかをチェックするために使用されるPHPのビルトイン関数です。主にユーザーからの入力値を検証するために使用されます。

filter_var()の基本的な構文は以下の通りです。

filter_var($value, $filter, $options)

  • $value
    検証する値。
  • $filter
    使用するフィルターの種類。例えば、FILTER_VALIDATE_EMAILは、値が有効なメールアドレスであるかどうかを確認するために使用されます。
  • $options
    オプション。省略可能です。例えば、FILTER_FLAG_STRIP_HIGHは、値から高いASCII文字を削除するために使用されます。

以下は、例としてメールアドレスの検証について説明します。

$email = "example@example.com";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "$email は有効なメールアドレスです";
} else {
    echo "$email は無効なメールアドレスです";
}

このコードでは、filter_var()関数が使用されて、指定された値$emailが有効なメールアドレスであるかどうかを検証しています。もし、値が有効なメールアドレスであれば、「有効なメールアドレスです」というメッセージが出力されます。無効であれば、「無効なメールアドレスです」というメッセージが出力されます。

filter_var()関数は、様々な種類のフィルターを提供しています。例えば、FILTER_VALIDATE_INTは、値が有効な整数であるかどうかを確認するために使用されます。FILTER_VALIDATE_URLは、値が有効なURLであるかどうかを確認するために使用されます。

filter_var()関数で使用できる一部のフィルター

filter_var()関数は、様々な種類のフィルターを提供しており、検証できる入力値の種類も多岐に渡ります。以下に、filter_var()関数で使用できる一部のフィルターを紹介します。

  • FILTER_VALIDATE_BOOLEAN
    値が真偽値(true/false)であるかどうかを確認します。
  • FILTER_VALIDATE_EMAIL
    値が有効なメールアドレス形式であるかどうかを確認します。
  • FILTER_VALIDATE_FLOAT
    値が有効な浮動小数点数であるかどうかを確認します。
  • FILTER_VALIDATE_INT
    値が有効な整数であるかどうかを確認します。
  • FILTER_VALIDATE_IP
    値が有効なIPアドレス形式であるかどうかを確認します。
  • FILTER_VALIDATE_MAC
    値が有効なMACアドレス形式であるかどうかを確認します。
  • FILTER_VALIDATE_REGEXP
    値が指定された正規表現に一致するかどうかを確認します。
  • FILTER_VALIDATE_URL
    値が有効なURL形式であるかどうかを確認します。

これらは一部の例ですが、他にも多数のフィルターがあります。また、これらのフィルターには、さまざまなオプションがあります。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。