filter_var

関数の概要

PHPの filter_var 関数は、指定した値を特定のフィルターで検証(バリデーション)したり、フィルターによって値を変換したりするための便利な関数です。特にユーザーからの入力値を安全に処理する際に多用され、メールアドレスやURLの形式チェック、数値への変換などに役立ちます。

パラメータの説明

  • $variable : バリデーションやフィルタリングを行う対象の値を指定します。
  • $filter : 適用するフィルターを定義します。PHPの定数(例:FILTER_VALIDATE_EMAIL)で指定し、省略時は FILTER_DEFAULT となります。
  • $options : フィルターに渡す追加のオプションやフラグを配列または整数で指定できます。例えば、最小値や最大値の設定、フラグの組み合わせなどです。

戻り値

filter_var は、バリデーションが成功した場合はフィルターによって変換・検証された値を返します。失敗した場合は false を返します。

使用例

メールアドレスのバリデーション

$email = "user@example.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL) !== false) {
    echo "有効なメールアドレスです。";
} else {
    echo "無効なメールアドレスです。";
}

この例では、入力されたメールアドレスが正しい形式かどうかをチェックしています。正しい形式の場合は「有効なメールアドレスです。」と表示されます。

URLのバリデーション

$url = "https://www.example.com";
if (filter_var($url, FILTER_VALIDATE_URL) !== false) {
    echo "有効なURLです。";
} else {
    echo "無効なURLです。";
}

URLの書式が正しいかどうかを判定しています。安全なサイトへのリンクなどを扱う際に役立ちます。

整数のバリデーションと範囲チェック

$number = 25;
$options = array(
    "options" => array(
        "min_range" => 10,
        "max_range" => 100
    )
);
if (filter_var($number, FILTER_VALIDATE_INT, $options) !== false) {
    echo "範囲内の整数です。";
} else {
    echo "範囲外の整数です。";
}

整数値が10から100の範囲内であるかをチェックしています。ユーザーの入力値の制限に使えます。

関連する関数

  • filter_input
  • filter_var_array
  • filter_list
  • filter_id

まとめ

filter_var はPHPで入力値のバリデーションやフィルタリングを行う際に非常に便利な関数です。メールアドレスやURLの形式確認、数値の範囲チェックなど多彩な用途に対応しています。正しい入力値の検証と安全なデータ処理を実現するために、実務でも積極的に利用しましょう。