Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions reference/filter/constants.callback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a109099b7deda187b68d43d8a90393620eaeb8e1 Maintainer: lacatoire Status: ready -->
<section xml:id="filter.constants.callback" xmlns="http://docbook.org/ns/docbook">
<title>Filtre Défini par l'Utilisateur</title>
&extension.constants;
<variablelist>
<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 la fonction de rappel 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>
<note>
<simpara>
À partir de PHP 8.1.25 et 8.2.12, les indicateurs structurels
<constant>FILTER_REQUIRE_ARRAY</constant>,
<constant>FILTER_FORCE_ARRAY</constant> et
<constant>FILTER_REQUIRE_SCALAR</constant> s'appliquent à ce filtre, et
<constant>FILTER_NULL_ON_FAILURE</constant> modifie la façon dont un tel
échec structurel est rapporté. Dans les versions antérieures, tous les
indicateurs étaient ignorés. Les indicateurs propres à un filtre sont
toujours ignorés et, puisque la valeur de retour de la fonction de rappel
constitue le résultat, la fonction de rappel elle-même ne peut pas
échouer : aucun indicateur ne transforme un <literal>false</literal>
retourné par la fonction de rappel en &null; ou en exception.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- 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
-->
107 changes: 107 additions & 0 deletions reference/filter/constants.flags.generic.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a109099b7deda187b68d43d8a90393620eaeb8e1 Maintainer: lacatoire Status: ready -->
<section xml:id="filter.constants.flags.generic" xmlns="http://docbook.org/ns/docbook">
<title>Drapeaux Généraux de Filtrage</title>
&extension.constants;
<variablelist>
<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>
<varlistentry xml:id="constant.filter-throw-on-failure">
<term>
<constant>FILTER_THROW_ON_FAILURE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Lance une <exceptionname>Filter\FilterFailedException</exceptionname>
lorsqu'un filtre de validation échoue, au lieu de retourner &false;.
</simpara>
<simpara>
Utilisable avec tout filtre de validation
<constant>FILTER_VALIDATE_<replaceable>*</replaceable></constant>.
</simpara>
<simpara>
Disponible à partir de PHP 8.5.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- 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
-->
119 changes: 119 additions & 0 deletions reference/filter/constants.flags.sanitization.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a109099b7deda187b68d43d8a90393620eaeb8e1 Maintainer: lacatoire Status: ready -->
<section xml:id="filter.constants.flags.sanitization" xmlns="http://docbook.org/ns/docbook">
<title>Drapeaux de Filtrage de Sanitation</title>
&extension.constants;
<variablelist>
<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>
</section>
<!-- 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
-->
Loading
Loading