利用できるPHPのバージョン | PHP 5 >= 5.2.0, PHP 7, PHP 8 |
---|
PHPのfilter_var
関数はデータを指定したフィルタでフィルタリングを行う関数です。
フィルタリングを行うことで、例えばメールアドレスやURLが正しい形式のものであるかどうかを判定することができます。
そのため、フォームで入力された値に対して、filter_var
関数でバリデーションを行うといった使われ方をします。
filter_var
filter_var($value, $filter, $options)
第一引数にはフィルタリングしたい対象の文字列を指定します。
数値を指定した場合でも、内部的に文字列に変換される点に注意してください。
第一引数は必須引数です。
第二引数にはフィルタIDを指定します。
フィルタIDとはフィルタリングを行う対象文字列をどのような形式のものでフィルタリングを行うかを指定します。
フィルタIDはPHPで提供されている定数を使用します。
第二引数は省略可能な引数ですが、引数を指定しないとFILTER_DEFAULT
が適用されて何もフィルタリングを行いません。任意引数ではありますが、ほぼ必須引数と思って良いでしょう。
第三引数にはオプションを指定することができます。
第三引数は省略可能です。
フィルタリングを通過した値が返ってきます。フィルタリングを通過しなかった場合はfalse
が返ってきます。
filter_var
関数を用いてフィルタリングを行う方法をサンプルコードを使って紹介します。
第一引数にフィルタリングしたい文字列を格納した$email
を指定します。
第二引数には今回メールアドレスをフィルタリングしたいので、PHPで定義されている定数のFILTER_VALIDATE_EMAIL
を指定します。
上記のように指定することで、対象文字列がメールアドレスかどうかを判定することができます。
$email
にはメールアドレス形式の文字列を代入しているので、フィルタリングされた文字列を返します。
URLをフィルタリングしたい場合は第二引数にはFILTER_VALIDATE_URL
を指定します。
これで対象文字列をURLかどうかを検証することができます。
filter_var
関数を使ったバリデーションは形式が決められたものになりますので、バリデーションのカスタマイズを行いたい場合は正規表現を用いたpreg_match
関数を使うなどの検討が必要です。