filter_var

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

filter_varFiltra uma variável com um filtro especificado

Descrição

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

Parâmetros

value

Valor para filtrar. Observe que valores escalares são convertidos para strings internamente antes de serem filtrados.

filter

O ID do filtro a ser aplicado. A página do manual Tipos de filtros lista os filtros disponíveis.

Se omitido, FILTER_DEFAULT será usado, que é equivalente a FILTER_UNSAFE_RAW. Isso resultará em nenhuma filtragem ocorrendo por padrão.

options

Array associativo de opções ou disjunção binária de opções. Se o filtro aceitar opções, elas podem ser fornecidas no campo "flags" do array. Para um filtro de função de retorno, um tipo callable deve ser passado. Esta função precisa aceitar um argumento, o valor a ser filtrado, e retornar o valor depois de filtrá-lo ou sanitizá-lo.

<?php
// Para filtros que aceitam opções, use este formato
$options = array(
    'options' => array(
        'default' => 3, // valor a retornar se o filtro falhar
        // outras opções aqui
        'min_range' => 0
    ),
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// Para filtros que aceitam somente opções, pode-se passá-las diretamente
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// Para filtros que aceitam somente opções, pode-se também passá-las como um array
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
                  array('flags' => FILTER_NULL_ON_FAILURE));

// função de retorno de validação de filtro
function foo($value)
{
    // Formato esperado: Sobrenome ($surname), Nomes ($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'));
?>

Valor Retornado

Retorna o dado filtrado, ou false se o filtro falhar.

Exemplos

Example #1 Um exemplo de filter_var()

<?php
var_dump(filter_var('[email protected]', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('example.com', FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED));
?>

O exemplo acima produzirá:

string(15) "[email protected]"
bool(false)

Example #2 Exemplo de um filtro de um array

<?php
$emails = [
    "[email protected]",
    "[email protected]",
    "invalidemail"
];

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

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(15) "[email protected]"
  [1]=>
  string(18) "[email protected]"
  [2]=>
  bool(false)
}

Veja Também