Filtres de Validation
PHP Manual
PHP Manual»Constantes pré-définies»Filtres de Validation

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.

FILTER_VALIDATE_BOOL (int)

Retourne true pour "1", 1, y compris les notations binaire, octale et hexadécimale, 1.0, y compris la notation scientifique, "true", true, "on", et "yes".

Retourne false pour "0", 0, y compris les notations binaire, octale et hexadécimale, 0.0, y compris la notation scientifique, "false", false, "off", "no", et "".

Les valeurs de type chaîne sont comparées sans tenir compte de la casse. 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é.

Options disponibles
default

Valeur à retourner si le filtre échoue.

Disponible à partir de PHP 8.0.0.

FILTER_VALIDATE_BOOLEAN (int)

Alias de FILTER_VALIDATE_BOOL. Cet alias était disponible avant l'introduction de son nom canonique dans PHP 8.0.0.

FILTER_VALIDATE_INT (int)

Valide si la valeur est un entier, en cas de succès, elle est convertie en type int.

Note:

Les chaînes de caractères sont nettoyées à l'aide de trim() avant validation.

Options disponibles
default

Valeur à retourner si le filtre échoue.

min_range

La valeur est valide seulement si elle est supérieure ou égale à la valeur fournie.

max_range

La valeur est valide seulement si elle est inférieure ou égale à la valeur fournie.

Options facultatives
FILTER_FLAG_ALLOW_OCTAL (int)

Permet les entiers en notation octale (0[0-7]+).

FILTER_FLAG_ALLOW_HEX (int)

Permet les entiers en notation hexadécimale (0x[0-9a-fA-F]+).

FILTER_VALIDATE_FLOAT (int)

Valide si la valeur est un nombre flottant, en cas de succès, elle est convertie en type float.

Note:

Les chaînes de caractères sont nettoyées à l'aide de trim() avant validation.

Options disponibles
default

Valeur à retourner si le filtre échoue.

decimal

min_range

La valeur est valide seulement si elle est supérieure ou égale à la valeur fournie. Disponible à partir de PHP 7.4.0.

max_range

La valeur est valide seulement si elle est inférieure ou égale à la valeur fournie. Disponible à partir de PHP 7.4.0.

Options facultatives
FILTER_FLAG_ALLOW_THOUSAND (int)

Accepte les virgules (,), qui représentent généralement le séparateur de milliers.

FILTER_VALIDATE_REGEXP (int)

Valide la valeur en fonction de l'expression régulière fournie par l'option regexp.

Options disponibles
default

Valeur à retourner si le filtre échoue.

regexp

Expression régulière compatible Perl.

FILTER_VALIDATE_URL (int)

Valide si l'URL est valide selon » RFC 2396.

Options disponibles
default

Valeur à retourner si le filtre échoue.

Options facultatives
FILTER_FLAG_SCHEME_REQUIRED (int)

Exige que l'URL contienne une partie schéma.

Avertissement

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)

Exige que l'URL contienne une partie hôte.

Avertissement

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 pour la plupart des schémas.

FILTER_FLAG_PATH_REQUIRED (int)

Exige que l'URL contienne une partie chemin.

FILTER_FLAG_QUERY_REQUIRED (int)

Exige que l'URL contienne une partie requête.

Avertissement

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:.

Avertissement

Ce filtre ne fonctionne que sur les URLs ASCII. Cela signifie que les noms de domaine internationalisés (IDN) seront toujours rejetés.

Avertissement

Ce filtre est très permissif. Pour tout schéma autre que http:// ou https://, le contenu de l'hôte sera accepté sans aucune validation, bien que la présence d'un hôte reste requise sauf si l'URL a pour schéma mailto:, news: ou file:. Les schémas eux-mêmes ne sont pas validés et peuvent être acceptés même s'ils ne correspondent pas à un schéma d'URL connu, ou s'ils ont une autre signification en PHP (comme phar://). Le filtre accepte également les adresses » loopback correspondant à l'hôte courant.

<?php

var_dump(filter_var('javascript://x%0aalert(1)', FILTER_VALIDATE_URL));
var_dump(filter_var('javascript://?demo', FILTER_VALIDATE_URL));
var_dump(filter_var('news:?demo', FILTER_VALIDATE_URL));
var_dump(filter_var('phar://demo', FILTER_VALIDATE_URL));
var_dump(filter_var('123://demo', FILTER_VALIDATE_URL));
var_dump(filter_var('-://demo', FILTER_VALIDATE_URL));
var_dump(filter_var('http://127.0.0.1', FILTER_VALIDATE_URL));
var_dump(filter_var('gopher://127.0.0.1', FILTER_VALIDATE_URL));
?>

L'exemple ci-dessus va afficher :

string(25) "javascript://x%0aalert(1)"
bool(false)
string(10) "news:?demo"
string(11) "phar://demo"
string(10) "123://demo"
string(8) "-://demo"
string(16) "http://127.0.0.1"
string(18) "gopher://127.0.0.1"
FILTER_VALIDATE_DOMAIN (int)

Valide si le nom de domaine est valide selon » RFC 952, » RFC 1034, » RFC 1035, » RFC 1123, » RFC 2732, et » RFC 2181.

Options disponibles
default

Valeur à retourner si le filtre échoue.

Options facultatives
FILTER_FLAG_HOSTNAME (int)

Exige que les noms d'hôte commencent par un caractère alphanumérique et ne contiennent que des caractères alphanumériques ou des traits d'union.

Avertissement

Ce filtre est très permissif. Comme spécifié dans la » RFC 2181, un nom de domaine valide est une chaîne d'au plus 253 caractères (254 avec un séparateur . final) dont chaque étiquette (séparée par un .) compte au plus 63 caractères. Sauf si FILTER_FLAG_HOSTNAME est utilisé pour s'assurer que le domaine est aussi un nom d'hôte valide, les espaces blancs, les métacaractères, les octets de contrôle et même les octets NUL sont acceptés par le filtre.

<?php

var_dump(filter_var("!@#$%^&*(){}[]/?=+\|`~\"'<>,", FILTER_VALIDATE_DOMAIN));
var_dump(filter_var("null byte: >\0<", FILTER_VALIDATE_DOMAIN));
var_dump(filter_var("space:> <, tab:>\t<, newline: >\n<, carriage return>\r<", FILTER_VALIDATE_DOMAIN));
?>

L'exemple ci-dessus va afficher :

string(27) "!@#$%^&*(){}[]/?=+\|`~"'<>,"
string(14) "null byte: ><"
string(52) "space:> <, tab:>	<, newline: >
<, carriage return>
<"
FILTER_VALIDATE_EMAIL (int)

Valide si la valeur est une adresse e-mail "valide".

La validation est effectuée selon la syntaxe 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.

Options disponibles
default

Valeur à retourner en cas d'échec du filtre.

Options facultatives
FILTER_FLAG_EMAIL_UNICODE (int)

Accepte les caractères Unicode dans la partie locale. Disponible à partir de PHP 7.1.0.

Avertissement

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.

Options disponibles
default

Valeur à retourner en cas d'échec du filtre.

Options facultatives
FILTER_FLAG_IPV4 (int)

Autoriser les adresses IPv4.

FILTER_FLAG_IPV6 (int)

Autoriser les adresses IPv6.

FILTER_FLAG_NO_RES_RANGE (int)

Refuser les adresses réservées.

Ce sont les plages qui sont marquées comme 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)

Refuser les adresses privées.

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.

Ce sont des adresses IPv6 commençant par FD ou FC.

FILTER_FLAG_GLOBAL_RANGE (int)

N'autoriser que les adresses globales. Celles-ci peuvent être trouvées dans » RFC 6890 où l'attribut Global est True. Disponible à partir de PHP 8.2.0.

FILTER_VALIDATE_MAC (int)

Valide si la valeur est une adresse MAC.

Options disponibles
default

Valeur à retourner en cas d'échec du filtre.

To Top