(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var — Filtra uma variável com um filtro especificado
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'));
?>
Retorna o dado filtrado, ou false
se o filtro falhar.
Exemplo #1 Um exemplo de filter_var()
<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('example.com', FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED));
?>
O exemplo acima produzirá:
string(15) "bob@example.com" bool(false)
Exemplo #2 Exemplo de um filtro de um array
<?php
$emails = [
"bob@example.com",
"test@example.local",
"invalidemail"
];
var_dump(filter_var($emails, FILTER_VALIDATE_EMAIL, FILTER_REQUIRE_ARRAY));
?>
O exemplo acima produzirá:
array(3) { [0]=> string(15) "bob@example.com" [1]=> string(18) "test@example.local" [2]=> bool(false) }