Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!
Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.
Ces constantes sont utilisées par filter_input() et filter_input_array().
INPUT_POST
(int)
INPUT_GET
(int)
INPUT_ENV
(int)
INPUT_SERVER
(int)
INPUT_SESSION
(int)
INPUT_REQUEST
(int)
FILTER_FLAG_NONE
(int)
FILTER_REQUIRE_SCALAR
(int)
FILTER_REQUIRE_ARRAY
(int)
FILTER_FORCE_ARRAY
(int)
FILTER_NULL_ON_FAILURE
(int)
null
au lieu de false
en cas d'échec.
Utilisable avec tout filtre de validation
FILTER_VALIDATE_*
.
FILTER_FLAG_STRIP_LOW
(int)
FILTER_FLAG_STRIP_HIGH
(int)
FILTER_FLAG_STRIP_BACKTICK
(int)
`
).
FILTER_FLAG_ENCODE_LOW
(int)
FILTER_FLAG_ENCODE_HIGH
(int)
FILTER_FLAG_ENCODE_AMP
(int)
&
.
FILTER_FLAG_NO_ENCODE_QUOTES
(int)
'
et "
)
ne seront pas encodés.
FILTER_FLAG_EMPTY_STRING_NULL
(int)
null
FILTER_VALIDATE_BOOL
(int)
true
pour "1"
,
"true"
,
"on"
,
et "yes"
.
Retourne false
pour "0"
,
"false"
,
"off"
,
"no"
, et
""
.
La valeur retournée pour des valeurs non booléennes dépend de
FILTER_NULL_ON_FAILURE
.
Si ce dernier est défini, null
est retourné, sinon false
est retourné.
default
FILTER_VALIDATE_BOOLEAN
(int)
FILTER_VALIDATE_BOOL
.
Cet alias était disponible avant l'introduction de son nom canonique
dans PHP 8.0.0.
FILTER_VALIDATE_INT
(int)
Note: Les chaînes de caractères sont nettoyées à l'aide de trim() avant validation.
default
min_range
max_range
FILTER_FLAG_ALLOW_OCTAL
(int)
0[0-7]+
).
FILTER_FLAG_ALLOW_HEX
(int)
0x[0-9a-fA-F]+
).
FILTER_VALIDATE_FLOAT
(int)
Note: Les chaînes de caractères sont nettoyées à l'aide de trim() avant validation.
default
decimal
min_range
max_range
FILTER_FLAG_ALLOW_THOUSAND
(int)
,
),
qui représentent généralement le séparateur de milliers.
FILTER_VALIDATE_REGEXP
(int)
regexp
.
default
regexp
FILTER_VALIDATE_URL
(int)
default
FILTER_FLAG_SCHEME_REQUIRED
(int)
OBSOLÈTE à partir de PHP 7.3.0 et
SUPPRIMÉ à partir de PHP 8.0.0.
Cela est dû au fait qu'il est toujours implicite avec
le filtre FILTER_VALIDATE_URL
.
FILTER_FLAG_HOST_REQUIRED
(int)
OBSOLÈTE depuis PHP 7.3.0 et
SUPPRIMÉ depuis PHP 8.0.0.
Cela est dû au fait qu'il est toujours implicite avec
le filtre FILTER_VALIDATE_URL
.
FILTER_FLAG_PATH_REQUIRED
(int)
FILTER_FLAG_QUERY_REQUIRED
(int)
Une URL valide peut ne pas spécifier le
protocole HTTP (http://
).
Une validation supplémentaire peut donc être nécessaire pour vérifier si l'URL
utilise un protocole attendu, par exemple ssh://
ou mailto:
.
Ce filtre ne fonctionne que sur les URLs ASCII. Cela signifie que les noms de domaine internationalisés (IDN) seront toujours rejetés.
FILTER_VALIDATE_DOMAIN
(int)
default
FILTER_FLAG_HOSTNAME
(int)
FILTER_VALIDATE_EMAIL
(int)
addr-spec
dans le
» RFC 822.
Cependant, les commentaires, le pliage des espaces blancs et les noms de domaine sans point
ne sont pas pris en charge et seront donc rejetés.
default
FILTER_FLAG_EMAIL_UNICODE
(int)
La validation des e-mails est complexe et le seul moyen fiable de confirmer qu'un e-mail est valide et existe est d'envoyer un e-mail à l'adresse.
FILTER_VALIDATE_IP
(int)
Valide la valeur en tant qu'adresse IP.
default
FILTER_FLAG_IPV4
(int)
FILTER_FLAG_IPV6
(int)
FILTER_FLAG_NO_RES_RANGE
(int)
Reserved-By-Protocol
dans
» RFC 6890.
Pour IPv4, cela correspond aux plages suivantes :
0.0.0.0/8
, 169.254.0.0/16
, 127.0.0.0/8
, 240.0.0.0/4
.
Et pour IPv6, cela correspond aux plages suivantes :
::1/128
, ::/128
, ::FFFF:0:0/96
, FE80::/10
.
FILTER_FLAG_NO_PRIV_RANGE
(int)
Ce sont des adresses IPv4 qui se trouvent dans les plages suivantes :
10.0.0.0/8
, 172.16.0.0/12
, 192.168.0.0/16
.
FD
ou FC
.
FILTER_FLAG_GLOBAL_RANGE
(int)
Global
est True
.
Disponible à partir de PHP 8.2.0.
FILTER_VALIDATE_MAC
(int)
default
FILTER_UNSAFE_RAW
(int)
FILTER_FLAG_STRIP_*
et FILTER_FLAG_ENCODE_*
.
FILTER_DEFAULT
(int)
FILTER_UNSAFE_RAW
.
FILTER_SANITIZE_STRING
(int)
FILTER_FLAG_STRIP_*
et FILTER_FLAG_ENCODE_*
.
Le comportement d'encodage des guillemets peut être désactivé en utilisant le
filtre FILTER_FLAG_NO_ENCODE_QUOTES
.
Obsolète à partir de PHP 8.1.0, utilisez htmlspecialchars() à la place.
La manière dont ce filtre supprime les balises n'est pas équivalente à celle de strip_tags().
FILTER_SANITIZE_STRIPPED
(int)
FILTER_SANITIZE_STRING
.
Obsolète à partir de PHP 8.1.0, utilisez htmlspecialchars() à la place.
FILTER_SANITIZE_ENCODED
(int)
FILTER_FLAG_STRIP_*
et FILTER_FLAG_ENCODE_*
.
FILTER_SANITIZE_SPECIAL_CHARS
(int)
Ce filtre effectue un encodage HTML sur
'
, "
, <
, >
, &
et sur les caractères ayant une valeur ASCII inférieure à 32.
FILTER_FLAG_STRIP_*
,
et il peut encoder les caractères dont la valeur ASCII est supérieure à 127 en utilisant
FILTER_FLAG_ENCODE_HIGH
.
FILTER_SANITIZE_FULL_SPECIAL_CHARS
(int)
ENT_QUOTES
activé.
Le comportement d'encodage des guillemets peut être désactivé en utilisant le
filtre FILTER_FLAG_NO_ENCODE_QUOTES
.
Comme htmlspecialchars(), ce filtre tient compte du paramètre default_charset dans le fichier INI. Si une séquence d'octets qui forme un caractère invalide dans le jeu de caractères actuel est détectée, toute la chaîne est rejetée, ce qui entraîne le retour d'une chaîne vide.
FILTER_SANITIZE_EMAIL
(int)
[a-zA-Z]
),
les chiffres ([0-9]
),
et les caractères spéciaux
!#$%&'*+-=?^_`{|}~@.[]
.
FILTER_SANITIZE_URL
(int)
[a-zA-Z]
),
les chiffres ([0-9]
),
et les caractères spéciaux
$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=
.
FILTER_SANITIZE_NUMBER_INT
(int)
[0-9]
), le signe plus (+
),
et le signe moins (-
).
FILTER_SANITIZE_NUMBER_FLOAT
(int)
[0-9]
), le signe plus (+
)
et le signe moins (-
).
FILTER_FLAG_ALLOW_FRACTION
(int)
.
),
qui représente habituellement le séparateur entre les parties
entière et fractionnaire.
FILTER_FLAG_ALLOW_THOUSAND
(int)
,
),
qui représente habituellement le séparateur de milliers.
FILTER_FLAG_ALLOW_SCIENTIFIC
(int)
e
et E
.
Si le filtre FILTER_FLAG_ALLOW_FRACTION
n'est pas utilisé,
le séparateur décimal est supprimé, modifiant ainsi la valeur reçue.
<?php
$number = '12.34';
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT));
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
?>
L'exemple ci-dessus va afficher :
string(4) "1234" string(5) "12.34"
FILTER_SANITIZE_ADD_SLASHES
(int)
FILTER_SANITIZE_MAGIC_QUOTES
(int)
FILTER_SANITIZE_ADD_SLASHES
.
OBSOLÈTE à partir de PHP 7.3.0 et SUPPRIMÉ à partir de PHP 8.0.0.
FILTER_CALLBACK
(int)
options
en tant que valeur associée à la clé
'options'
.
Le callback doit avoir la signature suivante :
value
Note: La valeur retournée par le callback sera la valeur retournée par la fonction de filtre invoquée.
Exemple #1
Exemple d'utilisation de FILTER_CALLBACK
pour valider
un nom de connexion
<?php
function validate_login($value): ?string
{
if (strlen($value) >= 5 && ctype_alnum($value)) {
return $value;
}
return null;
}
$login = "val1dL0gin";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
$login = "f&ke login";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
?>
L'exemple ci-dessus va afficher :
string(10) "val1dL0gin" NULL
Ce filtre ne peut pas être utilisé avec d'autres indicateurs de filtre,
par exemple FILTER_NULL_ON_FAILURE
.
Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!