filter_var

指定したフィルタでデータをフィルタリングする

説明

mixed filter_var(mixed $value, int $filter = FILTER_DEFAULT, arrayint $options = 0)

検証フィルタ FILTER_VALIDATE_* や、除去フィルタ FILTER_SANITIZE_*、 またはカスタムフィルタを使って変数をフィルタリングします。

パラメータ

value
フィルタリングする値。
警告

スカラー地は、値をフィルタリングする前に、 内部的に 文字列への変換 が行われることに注意しましょう。

filter
適用するフィルタ。 検証フィルタの場合は FILTER_VALIDATE_* のうちのいずれか。 除去フィルタの場合は FILTER_SANITIZE_* のうちのいずれか。 もしくは、FILTER_UNSAFE_RAW。 カスタムフィルタを指定する場合は FILTER_CALLBACK

注意: デフォルトは FILTER_DEFAULT です。 これは FILTER_UNSAFE_RAW のエイリアスで、 デフォルトではフィルタリングは何も行われません。

options
オプションの連想配列。 または、フラグ定数 FILTER_FLAG_* を指定したビットマスク。 filter がオプションを受け入れる場合、 フラグは配列の "flags" フィールドを使って指定できます。

戻り値

フィルタリングされたデータを返します。 あるいは処理に失敗した場合は false を返します。 フラグ FILTER_NULL_ON_FAILURE を指定した場合は、null を返します。

例1 filter_var の例

<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('https://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>

上の例の出力は以下となります。

string(15) "bob@example.com"
bool(false)

例2 配列をフィルタする例

<?php
$emails = [
    "bob@example.com",
    "test@example.local",
    "invalidemail"
];

var_dump(filter_var($emails, FILTER_VALIDATE_EMAIL, FILTER_REQUIRE_ARRAY));
?>

上の例の出力は以下となります。

array(3) {
  [0]=>
  string(15) "bob@example.com"
  [1]=>
  string(18) "test@example.local"
  [2]=>
  bool(false)
}

例3 options に配列を渡す例

<?php

$options = [
    'options' => [
        'min_range' => 10,
    ],
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
];

var_dump(filter_var('0755', FILTER_VALIDATE_INT, $options));
var_dump(filter_var('011', FILTER_VALIDATE_INT, $options));

?>

上の例の出力は以下となります。

int(493)
bool(false)

例4 配列経由、または直接フラグを渡す例

<?php

$str = 'string';

var_dump(filter_var($str, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var($str, FILTER_VALIDATE_BOOLEAN, ['flags' => FILTER_NULL_ON_FAILURE]));

?>

上の例の出力は以下となります。

NULL
NULL

参考

  • filter_var_array
  • filter_input
  • filter_input_array
  • 検証フィルタ FILTER_VALIDATE_*
  • 除去フィルタ FILTER_SANITIZE_*