(PHP 5 >= 5.2.0)
filter_var — Filtre une variable avec un filtre spécifique
variable
Valeur à filtrer.
filter
L'ID du filtre à appliquer. La page Types de filtres du manuel liste tous les filtres disponibles.
options
Tableau associatif d'options ou des drapeaux. Si le filtre accepte les options, les drapeaux peuvent être fournis dans le champ "flags" du tableau. Pour les fonctions de rappel, le type callable devra être passé. La fonction de rappel doit accepter un seul argument ; la valeur à filtrer et retournera la valeur, une fois le filtre appliqué.
<?php
// Pour les filtres acceptant les options,
// utilisez ce format
$options = array(
'options' => array(
'default' => 3, // valeur à retourner si le filtre échoue
// autres options ici...
'min_range' => 0
),
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);
// Pour les filtres qui n'acceptent que des drapeaux,
// vous pouvez les passer directement
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
// Pour les filtres qui n'acceptent que des drapeaux,
// vous pouvez également les passer sous forme de tableau
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
array('flags' => FILTER_NULL_ON_FAILURE));
// Fonction de rappel du filtre
function foo($value)
{
// Format attendu: 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'));
?>
Retourne les données filtrées, ou FALSE
si le filtre échoue.
Exemple #1 Exemple avec filter_var()
<?php
var_dump(filter_var('[email protected]', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>
L'exemple ci-dessus va afficher :
string(15) "[email protected]" bool(false)