filter_var

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

filter_varFilters a variable with a specified filter

Опис

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

Параметри

value

Value to filter. Note that scalar values are converted to string internally before they are filtered.

filter

ID фільтра, який потрібно застосувати. Список доступних фільтрів наведено на сторінці посібника Types of filters.

Якщо не задано, то буде використана константа FILTER_DEFAULT, яка однакова з FILTER_UNSAFE_RAW. Це призведе до того, що фільтрація не виконається.

options

Associative array of options or bitwise disjunction of flags. If filter accepts options, flags can be provided in "flags" field of array. For the "callback" filter, callable type should be passed. The callback must accept one argument, the value to be filtered, and return the value after filtering/sanitizing it.

<?php
// for filters that accept options, use this format
$options = array(
'options' => array(
'default' => 3, // value to return if the filter fails
// other options here
'min_range' => 0
),
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// for filters that only accept flags, you can pass them directly
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// for filters that only accept flags, you can also pass as an array
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
array(
'flags' => FILTER_NULL_ON_FAILURE));

// callback validate filter
function foo($value)
{
// Expected format: Surname, GivenNames
if (strpos($value, ", ") === false) return false;
list(
$surname, $givennames) = explode(", ", $value, 2);
$empty = (empty($surname) || empty($givennames));
$notstrings = (!is_string($surname) || !is_string($givennames));
if (
$empty || $notstrings) {
return
false;
} else {
return
$value;
}
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>

Значення, що повертаються

Returns the filtered data, or false if the filter fails.

Приклади

Приклад #1 A filter_var() example

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

Поданий вище приклад виведе:

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

Приклад #2 Filter an array example

<?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)
}

Прогляньте також