1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-23 22:52:18 +01:00
Files
archived-doc-fr/reference/filter/constants.xml
2026-02-28 22:54:29 +01:00

1239 lines
39 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9b09581bfdd1fa1c33daa740ad49599cf665cff4 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<appendix xml:id="filter.constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.constants;
&extension.constants;
<variablelist>
<title>Constantes d'Entrée</title>
<simpara>
Ces constantes sont utilisées par
<function>filter_input</function> et
<function>filter_input_array</function>.
</simpara>
<varlistentry xml:id="constant.input-post">
<term>
<constant>INPUT_POST</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <link linkend="reserved.variables.post">POST</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-get">
<term>
<constant>INPUT_GET</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <link linkend="reserved.variables.get">GET</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-cookie">
<term>
<constant>INPUT_COOKIE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <link linkend="reserved.variables.cookies">COOKIE</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-env">
<term>
<constant>INPUT_ENV</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <link linkend="reserved.variables.environment">ENV</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-server">
<term>
<constant>INPUT_SERVER</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <link linkend="reserved.variables.server">SERVER</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-session">
<term>
<constant>INPUT_SESSION</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <link linkend="reserved.variables.session">SESSION</link>.
(Supprimé à partir de PHP 8.0.0 ; n'a pas été implémenté précédemment)
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-request">
<term>
<constant>INPUT_REQUEST</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <link linkend="reserved.variables.request">REQUEST</link>.
(Supprimé à partir de PHP 8.0.0 ; n'a pas été implémenté précédemment)
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.flags.generic">
<title>Drapeaux Généraux de Filtrage</title>
<varlistentry xml:id="constant.filter-flag-none">
<term>
<constant>FILTER_FLAG_NONE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Aucun drapeau.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-require-scalar">
<term>
<constant>FILTER_REQUIRE_SCALAR</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Drapeau utilisé pour exiger que l'entrée du filtre soit un scalaire.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-require-array">
<term>
<constant>FILTER_REQUIRE_ARRAY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Drapeau utilisé pour exiger que l'entrée du filtre soit un <type>array</type>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-force-array">
<term>
<constant>FILTER_FORCE_ARRAY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Ce drapeau enveloppe les entrées scalaires dans un <type>array</type> d'un élément
pour les filtres qui opèrent sur des tableaux.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-null-on-failure">
<term>
<constant>FILTER_NULL_ON_FAILURE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Utilise &null; au lieu de &false; en cas d'échec.
</simpara>
<simpara>
Utilisable avec tout filtre de validation
<constant>FILTER_VALIDATE_<replaceable>*</replaceable></constant>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.flags.sanitization">
<title>Drapeaux de Filtrage de Sanitation</title>
<varlistentry xml:id="constant.filter-flag-strip-low">
<term>
<constant>FILTER_FLAG_STRIP_LOW</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Supprime les caractères ayant une valeur ASCII inférieure à 32.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-strip-high">
<term>
<constant>FILTER_FLAG_STRIP_HIGH</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Supprime les caractères ayant une valeur ASCII supérieure à 127.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-strip-backtick">
<term>
<constant>FILTER_FLAG_STRIP_BACKTICK</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Supprime les caractères backtick (<literal>`</literal>).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-encode-low">
<term>
<constant>FILTER_FLAG_ENCODE_LOW</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Encode les caractères ayant une valeur ASCII inférieure à 32.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-encode-high">
<term>
<constant>FILTER_FLAG_ENCODE_HIGH</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Encode les caractères ayant une valeur ASCII supérieure à 127.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-encode-amp">
<term>
<constant>FILTER_FLAG_ENCODE_AMP</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Encode <literal>&amp;</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-no-encode-quotes">
<term>
<constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Les guillemets simples et doubles (<literal>'</literal> et <literal>"</literal>)
ne sont pas encodés.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-empty-string-null">
<term>
<constant>FILTER_FLAG_EMPTY_STRING_NULL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
<!-- TODO Documenter/vérifier quels filtres acceptent ce drapeau (seulement FILTER_UNSAFE_RAW et FILTER_SANITIZE_STRING) -->
Si la sanitation d'une chaîne de caractères aboutit à une chaîne vide,
convertir la valeur en &null;
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation">
<title>Filtres de Validation</title>
<varlistentry xml:id="constant.filter-validate-bool">
<term>
<constant>FILTER_VALIDATE_BOOL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Retourne &true; pour <literal>"1"</literal>,
<literal>1</literal>, y compris les notations binaire, octale et hexadécimale, <literal>1.0</literal>,
<literal>"true"</literal>, <literal>true</literal>,
<literal>"on"</literal>,
et <literal>"yes"</literal>.
</simpara>
<simpara>
Retourne &false; pour <literal>"0"</literal>,
<literal>0</literal>, y compris les notations binaire, octale et hexadécimale, <literal>0.0</literal>,
<literal>"false"</literal>, <literal>false</literal>,
<literal>"off"</literal>,
<literal>"no"</literal>, et
<literal>""</literal>.
</simpara>
<simpara>
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
<constant>FILTER_NULL_ON_FAILURE</constant>.
Si ce dernier est défini, &null; est retourné, sinon &false; est retourné.
</simpara>
<variablelist xml:id="filter.constants.validation.bool.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner si le filtre échoue.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<simpara>
Disponible à partir de PHP 8.0.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-boolean">
<term>
<constant>FILTER_VALIDATE_BOOLEAN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>FILTER_VALIDATE_BOOL</constant>.
Cet alias était disponible avant l'introduction de son nom canonique
dans PHP 8.0.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-int">
<term>
<constant>FILTER_VALIDATE_INT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valide si la valeur est un entier,
en cas de succès, elle est convertie en type <type>int</type>.
</simpara>
<note>
<simpara>
Les chaînes de caractères sont nettoyées à l'aide de <function>trim</function>
avant validation.
</simpara>
</note>
<variablelist xml:id="filter.constants.validation.int.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner si le filtre échoue.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>min_range</literal></term>
<listitem>
<simpara>
La valeur est valide seulement si elle est supérieure ou égale à la valeur fournie.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>max_range</literal></term>
<listitem>
<simpara>
La valeur est valide seulement si elle est inférieure ou égale à la valeur fournie.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.int.flags">
<title>Options facultatives</title>
<varlistentry xml:id="constant.filter-flag-allow-octal">
<term>
<constant>FILTER_FLAG_ALLOW_OCTAL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
<!-- TODO: Check that explicit octal prefix 0o and 0O are allowed -->
Permet les entiers en notation octale
(<literal>0[0-7]+</literal>).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-allow-hex">
<term>
<constant>FILTER_FLAG_ALLOW_HEX</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Permet les entiers en notation hexadécimale
(<literal>0x[0-9a-fA-F]+</literal>).
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-float">
<term>
<constant>FILTER_VALIDATE_FLOAT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valide si la valeur est un nombre flottant,
en cas de succès, elle est convertie en type <type>float</type>.
</simpara>
<note>
<simpara>
Les chaînes de caractères sont nettoyées à l'aide de <function>trim</function>
avant validation.
</simpara>
</note>
<variablelist xml:id="filter.constants.validation.float.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner si le filtre échoue.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>decimal</literal></term>
<listitem>
<simpara>
<!-- TODO -->
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>min_range</literal></term>
<listitem>
<simpara>
La valeur est valide seulement si elle est supérieure ou égale à la valeur fournie.
Disponible à partir de PHP 7.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>max_range</literal></term>
<listitem>
<simpara>
La valeur est valide seulement si elle est inférieure ou égale à la valeur fournie.
Disponible à partir de PHP 7.4.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.float.flags">
<title>Options facultatives</title>
<varlistentry>
<term>
<constant>FILTER_FLAG_ALLOW_THOUSAND</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Accepte les virgules (<literal>,</literal>),
qui représentent généralement le séparateur de milliers.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-regexp">
<term>
<constant>FILTER_VALIDATE_REGEXP</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valide la valeur en fonction de l'expression régulière fournie par l'option
<literal>regexp</literal>.
</simpara>
<variablelist xml:id="filter.constants.validation.regex.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner si le filtre échoue.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>regexp</literal></term>
<listitem>
<simpara>
Expression régulière compatible <link linkend="book.pcre">Perl</link>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-url">
<term>
<constant>FILTER_VALIDATE_URL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valide si l'<acronym>URL</acronym> est valide selon
<link xlink:href="&url.rfc;2396">RFC 2396</link>.
</simpara>
<variablelist xml:id="filter.constants.validation.url.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner si le filtre échoue.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.url.flags">
<title>Options facultatives</title>
<varlistentry xml:id="constant.filter-flag-scheme-required">
<term>
<constant>FILTER_FLAG_SCHEME_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Exige que l'<acronym>URL</acronym> contienne une partie schéma.
</simpara>
<warning>
<simpara>
<emphasis>OBSOLÈTE</emphasis> à partir de PHP 7.3.0 et
<emphasis>SUPPRIMÉ</emphasis> à partir de PHP 8.0.0.
Cela est dû au fait qu'il est toujours implicite avec
le filtre <constant>FILTER_VALIDATE_URL</constant>.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-host-required">
<term>
<constant>FILTER_FLAG_HOST_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Exige que l'<acronym>URL</acronym> contienne une partie hôte.
</simpara>
<warning>
<simpara>
<emphasis>OBSOLÈTE</emphasis> à partir de PHP 7.3.0 et
<emphasis>SUPPRIMÉ</emphasis> à partir de PHP 8.0.0.
Cela est dû au fait qu'il est toujours implicite avec
le filtre <constant>FILTER_VALIDATE_URL</constant>.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-path-required">
<term>
<constant>FILTER_FLAG_PATH_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Exige que l'<acronym>URL</acronym> contienne une partie chemin.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-query-required">
<term>
<constant>FILTER_FLAG_QUERY_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Exige que l'<acronym>URL</acronym> contienne une partie requête.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
Une <acronym>URL</acronym> valide peut ne pas spécifier le
protocole <acronym>HTTP</acronym> (<literal>http://</literal>).
Une validation supplémentaire peut donc être nécessaire pour vérifier si l'<acronym>URL</acronym>
utilise un protocole attendu, par exemple <literal>ssh://</literal> ou <literal>mailto:</literal>.
</simpara>
</warning>
<warning>
<simpara>
Ce filtre ne fonctionne que sur les <acronym>URL</acronym>s <acronym>ASCII</acronym>.
Cela signifie que les noms de domaine internationalisés (IDN) seront toujours rejetés.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-domain">
<term>
<constant>FILTER_VALIDATE_DOMAIN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valide si le nom de domaine est valide selon
<link xlink:href="&url.rfc;952">RFC 952</link>,
<link xlink:href="&url.rfc;1034">RFC 1034</link>,
<link xlink:href="&url.rfc;1035">RFC 1035</link>,
<link xlink:href="&url.rfc;1034">RFC 1123</link>,
<link xlink:href="&url.rfc;1034">RFC 2732</link>,
et
<link xlink:href="&url.rfc;2181">RFC 2181</link>.
</simpara>
<variablelist xml:id="filter.constants.validation.domain.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner si le filtre échoue.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.domain.flags">
<title>Options facultatives</title>
<varlistentry xml:id="constant.filter-flag-hostname">
<term>
<constant>FILTER_FLAG_HOSTNAME</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
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.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-email">
<term>
<constant>FILTER_VALIDATE_EMAIL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valide si la valeur est une adresse e-mail "valide".
</simpara>
<simpara>
La validation est effectuée selon la syntaxe <literal>addr-spec</literal>
dans le
<link xlink:href="&url.rfc;822">RFC 822</link>.
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.
</simpara>
<variablelist xml:id="filter.constants.validation.email.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner en cas d'échec du filtre.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.email.flags">
<title>Options facultatives</title>
<varlistentry xml:id="constant.filter-flag-email-unicode">
<term>
<constant>FILTER_FLAG_EMAIL_UNICODE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Accepte les caractères Unicode dans la partie locale.
Disponible à partir de PHP 7.1.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
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.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-ip">
<term>
<constant>FILTER_VALIDATE_IP</constant>
(<type>int</type>)
</term>
<listitem>
<para>
Valide la valeur en tant qu'adresse IP.
</para>
<variablelist xml:id="filter.constants.validation.ip.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner en cas d'échec du filtre.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.ip.flags">
<title>Options facultatives</title>
<varlistentry xml:id="constant.filter-flag-ipv4">
<term>
<constant>FILTER_FLAG_IPV4</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Autoriser les adresses IPv4.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-ipv6">
<term>
<constant>FILTER_FLAG_IPV6</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Autoriser les adresses IPv6.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-no-res-range">
<term>
<constant>FILTER_FLAG_NO_RES_RANGE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Refuser les adresses réservées.
</simpara>
<simpara>
Ce sont les plages qui sont marquées comme
<literal>Reserved-By-Protocol</literal> dans
<link xlink:href="&url.rfc;6890">RFC 6890</link>.
</simpara>
<para>
Pour IPv4, cela correspond aux plages suivantes :
<simplelist type="inline">
<member><literal>0.0.0.0/8</literal></member>
<member><literal>169.254.0.0/16</literal></member>
<member><literal>127.0.0.0/8</literal></member>
<member><literal>240.0.0.0/4</literal></member>
</simplelist>.
</para>
<para>
Et pour IPv6, cela correspond aux plages suivantes :
<simplelist type="inline">
<member><literal>::1/128</literal></member>
<member><literal>::/128</literal></member>
<member><literal>::FFFF:0:0/96</literal></member>
<member><literal>FE80::/10</literal></member>
</simplelist>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-no-priv-range">
<term>
<constant>FILTER_FLAG_NO_PRIV_RANGE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Refuser les adresses privées.
</simpara>
<para>
Ce sont des adresses IPv4 qui se trouvent dans les plages suivantes :
<simplelist type="inline">
<member><literal>10.0.0.0/8</literal></member>
<member><literal>172.16.0.0/12</literal></member>
<member><literal>192.168.0.0/16</literal></member>
</simplelist>.
</para>
<simpara>
Ce sont des adresses IPv6 commençant par
<literal>FD</literal> ou <literal>FC</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-global-range">
<term>
<constant>FILTER_FLAG_GLOBAL_RANGE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
N'autoriser que les adresses globales.
Celles-ci peuvent être trouvées dans
<link xlink:href="&url.rfc;6890">RFC 6890</link>
où l'attribut <literal>Global</literal> est <literal>True</literal>.
Disponible à partir de PHP 8.2.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-mac">
<term>
<constant>FILTER_VALIDATE_MAC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valide si la valeur est une adresse MAC.
</simpara>
<variablelist xml:id="filter.constants.validation.mac.options">
<title>Options disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valeur à retourner en cas d'échec du filtre.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.sanitization">
<title>Filtres de Sanitisation</title>
<varlistentry xml:id="constant.filter-unsafe-raw">
<term>
<constant>FILTER_UNSAFE_RAW</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Ce filtre ne fait rien.
</simpara>
<simpara>
Cependant, il peut supprimer ou encoder des caractères spéciaux s'il est utilisé avec
les indicateurs de filtrage de nettoyage
<constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
et <constant>FILTER_FLAG_ENCODE_<replaceable>*</replaceable></constant>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-default">
<term>
<constant>FILTER_DEFAULT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>FILTER_UNSAFE_RAW</constant>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-string">
<term>
<constant>FILTER_SANITIZE_STRING</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Ce filtre supprime les balises et encode en HTML les guillemets doubles et simples.
</simpara>
<simpara>
Optionnellement, il peut supprimer ou encoder des caractères spécifiés s'il est utilisé avec les
filtres de sanitarisation <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
et <constant>FILTER_FLAG_ENCODE_<replaceable>*</replaceable></constant>.
</simpara>
<simpara>
Le comportement d'encodage des guillemets peut être désactivé en utilisant le
filtre <constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>.
</simpara>
<warning>
<simpara>
<emphasis>Obsolète</emphasis> à partir de PHP 8.1.0,
il convient d'utiliser <function>htmlspecialchars</function> à la place.
</simpara>
</warning>
<warning>
<simpara>
La manière dont ce filtre supprime les balises n'est pas équivalente à celle de
<function>strip_tags</function>.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-stripped">
<term>
<constant>FILTER_SANITIZE_STRIPPED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>FILTER_SANITIZE_STRING</constant>.
</simpara>
<warning>
<simpara>
<emphasis>Obsolète</emphasis> à partir de PHP 8.1.0,
il convient d'utiliser <function>htmlspecialchars</function> à la place.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-encoded">
<term>
<constant>FILTER_SANITIZE_ENCODED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Ce filtre effectue un encodage URL d'une chaîne.
</simpara>
<simpara>
Il peut éventuellement supprimer ou encoder des caractères spécifiés s'il est utilisé avec les
filtres de sanitation <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
et <constant>FILTER_FLAG_ENCODE_<replaceable>*</replaceable></constant>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-special-chars">
<term>
<constant>FILTER_SANITIZE_SPECIAL_CHARS</constant>
(<type>int</type>)
</term>
<listitem>
<para>
Ce filtre effectue un encodage HTML sur
<simplelist type="inline">
<member><literal>'</literal></member>
<member><literal>"</literal></member>
<member><literal>&lt;</literal></member>
<member><literal>&gt;</literal></member>
<member><literal>&amp;</literal></member>
</simplelist>
et sur les caractères ayant une valeur ASCII inférieure à 32.
Contrairement au filtre <constant>FILTER_SANITIZE_FULL_SPECIAL_CHARS</constant>,
le filtre <constant>FILTER_SANITIZE_SPECIAL_CHARS</constant> ignore lindicateur
<constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>.
</para>
<simpara>
En option, il peut supprimer des caractères spécifiés s'il est utilisé avec les
filtres de sanitation <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>,
et il peut encoder les caractères dont la valeur ASCII est supérieure à 127 en utilisant
<constant>FILTER_FLAG_ENCODE_HIGH</constant>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-full-special-chars">
<term>
<constant>FILTER_SANITIZE_FULL_SPECIAL_CHARS</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Ce filtre équivaut à appeler <function>htmlspecialchars</function>
avec <constant>ENT_QUOTES</constant> activé.
</simpara>
<simpara>
Le comportement d'encodage des guillemets peut être désactivé en utilisant le
filtre <constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>.
</simpara>
<warning>
<simpara>
Comme <function>htmlspecialchars</function>, ce filtre tient compte du
paramètre <link linkend="ini.default-charset">default_charset</link> 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.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-email">
<term>
<constant>FILTER_SANITIZE_EMAIL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Assainit la chaîne en supprimant tous les caractères sauf
les lettres latines (<literal>[a-zA-Z]</literal>),
les chiffres (<literal>[0-9]</literal>),
et les caractères spéciaux
<literal>!#$%&amp;'*+-=?^_`{|}~@.[]</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-url">
<term>
<constant>FILTER_SANITIZE_URL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Assainit la chaîne en supprimant tous les caractères sauf
les lettres latines (<literal>[a-zA-Z]</literal>),
les chiffres (<literal>[0-9]</literal>),
et les caractères spéciaux
<literal>$-_.+!*'(),{}|\\^~[]`&lt;&gt;#%";/?:@&amp;=</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-number-int">
<term>
<constant>FILTER_SANITIZE_NUMBER_INT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Assainit la chaîne en supprimant tous les caractères sauf les chiffres
(<literal>[0-9]</literal>), le signe plus (<literal>+</literal>),
et le signe moins (<literal>-</literal>).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-number-float">
<term>
<constant>FILTER_SANITIZE_NUMBER_FLOAT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Assainir la chaîne en supprimant tous les caractères sauf les chiffres
(<literal>[0-9]</literal>), le signe plus (<literal>+</literal>)
et le signe moins (<literal>-</literal>).
</simpara>
<variablelist xml:id="filter.constants.sanitization.float.flags">
<title>Options Facultatives</title>
<varlistentry xml:id="constant.filter-flag-allow-fraction">
<term>
<constant>FILTER_FLAG_ALLOW_FRACTION</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Accepter le caractère point (<literal>.</literal>),
qui représente habituellement le séparateur entre les parties
entière et fractionnaire.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-allow-thousand">
<term>
<constant>FILTER_FLAG_ALLOW_THOUSAND</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Accepter le caractère virgule (<literal>,</literal>),
qui représente habituellement le séparateur de milliers.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-allow-scientific">
<term>
<constant>FILTER_FLAG_ALLOW_SCIENTIFIC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Accepter les nombres en notation scientifique en autorisant
les caractères <literal>e</literal> et <literal>E</literal>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
Si le filtre <constant>FILTER_FLAG_ALLOW_FRACTION</constant> n'est pas utilisé,
le séparateur décimal est supprimé, modifiant ainsi la valeur reçue.
</simpara>
<informalexample>
<programlisting role="php">
<![CDATA[
<?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));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(4) "1234"
string(5) "12.34"
]]>
</screen>
</informalexample>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-add-slashes">
<term>
<constant>FILTER_SANITIZE_ADD_SLASHES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Appliquer <function>addslashes</function> à l'entrée.
Disponible à partir de PHP 7.3.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-magic-quotes">
<term>
<constant>FILTER_SANITIZE_MAGIC_QUOTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>FILTER_SANITIZE_ADD_SLASHES</constant>.
</simpara>
<warning>
<simpara>
<emphasis>OBSOLÈTE</emphasis> à partir de PHP 7.3.0 et
<emphasis>SUPPRIMÉ</emphasis> à partir de PHP 8.0.0.
</simpara>
</warning>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Filtre Défini par l'Utilisateur</title>
<varlistentry xml:id="constant.filter-callback">
<term>
<constant>FILTER_CALLBACK</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Ce filtre délègue le filtrage à une fonction définie par l'utilisateur.
Le <type>callable</type> est passé via le paramètre
<parameter>options</parameter> en tant que valeur associée à la clé
<literal>'options'</literal>.
</simpara>
<para>
La fonction de rappel doit avoir la signature suivante :
<methodsynopsis>
<type>mixed</type><methodname><replaceable>callback</replaceable></methodname>
<methodparam><type>string</type><parameter>value</parameter></methodparam>
</methodsynopsis>
<variablelist role="function_parameters">
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<simpara>
La valeur qui est en cours de filtrage.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<note>
<simpara>
La valeur retournée par le callback sera la valeur retournée par la
fonction de filtre invoquée.
</simpara>
</note>
<example>
<title>
Exemple d'utilisation de <constant>FILTER_CALLBACK</constant> pour valider
un nom de connexion
</title>
<programlisting role="php">
<![CDATA[
<?php
function validate_login(string $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);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(10) "val1dL0gin"
NULL
]]>
</screen>
</example>
<warning>
<simpara>
Ce filtre ne peut pas être utilisé avec d'autres indicateurs de filtre,
par exemple <constant>FILTER_NULL_ON_FAILURE</constant>.
</simpara>
</warning>
</listitem>
</varlistentry>
</variablelist>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->