filter_var

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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

説明

filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

検証フィルタ 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_*