分類

    Qumeru

    filter_var関数 | PHP関数リファレンス

    利用できるPHPのバージョンPHP 5 >= 5.2.0, PHP 7, PHP 8

    filter_var関数とは

    PHPのfilter_var関数はデータを指定したフィルタでフィルタリングを行う関数です。

    フィルタリングを行うことで、例えばメールアドレスやURLが正しい形式のものであるかどうかを判定することができます。

    そのため、フォームで入力された値に対して、filter_var関数でバリデーションを行うといった使われ方をします。

    filter_var関数の使い方

    構文

    filter_var

    filter_var($value, $filter, $options)

    パラメータ

    フィルタリングする値

    第一引数にはフィルタリングしたい対象の文字列を指定します。

    数値を指定した場合でも、内部的に文字列に変換される点に注意してください。

    第一引数は必須引数です。

    フィルタID

    第二引数にはフィルタIDを指定します。

    フィルタIDとはフィルタリングを行う対象文字列をどのような形式のものでフィルタリングを行うかを指定します。

    フィルタIDはPHPで提供されている定数を使用します。

    第二引数は省略可能な引数ですが、引数を指定しないとFILTER_DEFAULTが適用されて何もフィルタリングを行いません。任意引数ではありますが、ほぼ必須引数と思って良いでしょう。

    PHP: フィルタの型 - Manual

    オプション

    第三引数にはオプションを指定することができます。

    第三引数は省略可能です。

    返り値

    フィルタリングを通過した値が返ってきます。フィルタリングを通過しなかった場合はfalseが返ってきます。

    filter_var関数を使った例

    filter_var関数を用いてフィルタリングを行う方法をサンプルコードを使って紹介します。

    メールアドレスをフィルタリング

    第一引数にフィルタリングしたい文字列を格納した$emailを指定します。

    第二引数には今回メールアドレスをフィルタリングしたいので、PHPで定義されている定数のFILTER_VALIDATE_EMAILを指定します。

    上記のように指定することで、対象文字列がメールアドレスかどうかを判定することができます。

    $emailにはメールアドレス形式の文字列を代入しているので、フィルタリングされた文字列を返します。

    URLをフィルタリング

    URLをフィルタリングしたい場合は第二引数にはFILTER_VALIDATE_URLを指定します。

    これで対象文字列をURLかどうかを検証することができます。

    filter_var関数の注意点

    filter_var関数を使ったバリデーションは形式が決められたものになりますので、バリデーションのカスタマイズを行いたい場合は正規表現を用いたpreg_match関数を使うなどの検討が必要です。

    あわせて読みたい
    preg_match関数
    正規表現を用いたパターンマッチを行うことができるpreg_match関数の概要を紹介しています。preg_matchを用いることで、フォームで入力された値のバリデーションをサーバサイド側で行うことができるようになります。

    filter_var関数の関連情報

    あわせて読みたい
    PHPのfilter_var関数でメールアドレスかどうかチェックする方法!のイメージ
    PHPのfilter_var関数でメールアドレスかどうかチェックする方法!
    フォームで入力された文字列がメールアドレスかどうかを判定する必要になることがあります。PHPでは文字列がメールアドレスかどうかを判定する方法にはいくつかありますが、この記事ではfilter_var関数を使って判定を行う方法をサンプルコード付きで解説しています。
    あわせて読みたい
    PHPで文字列がURLかどうか判定する方法を紹介!のイメージ
    PHPで文字列がURLかどうか判定する方法を紹介!
    ある文字列がURLを表す文字列なのかどうかを判定したい場面が少なからずあります。PHPでは文字列がURLかどうかを判定するための関数がいくつか用意されています。この記事ではそれらの関数を用いて、文字列がURLかどうかを判定する方法を紹介しています。