(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var — 指定したフィルタでデータをフィルタリングする
検証フィルタ
FILTER_VALIDATE_*
や、除去フィルタ
FILTER_SANITIZE_*、
またはカスタムフィルタを使って変数をフィルタリングします。
valueスカラー地は、値をフィルタリングする前に、 内部的に 文字列への変換 が行われることに注意しましょう。
filterFILTER_VALIDATE_*
のうちのいずれか。
除去フィルタの場合は
FILTER_SANITIZE_*
のうちのいずれか。
もしくは、FILTER_UNSAFE_RAW。
カスタムフィルタを指定する場合は
FILTER_CALLBACK。
注意: デフォルトは
FILTER_DEFAULTです。 これはFILTER_UNSAFE_RAWのエイリアスで、 デフォルトではフィルタリングは何も行われません。
optionsFILTER_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_VALIDATE_*
FILTER_SANITIZE_*