Files
doc-fr/reference/strings/functions/addcslashes.xml
2023-03-18 03:23:28 +00:00

158 lines
4.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 2bcb7a986d47e06c1a37474a8b3634367c907043 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.addcslashes" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>addcslashes</refname>
<refpurpose>Ajoute des slash dans une chaîne, à la mode du langage C</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>addcslashes</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam><type>string</type><parameter>characters</parameter></methodparam>
</methodsynopsis>
<para>
Retourne la chaîne <parameter>string</parameter>, après avoir ajouté des
antislashs devant tous les caractères qui sont présents
dans la liste <parameter>characters</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
La chaîne à échapper.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>characters</parameter></term>
<listitem>
<para>
Une liste de caractères à échapper. Si
<parameter>characters</parameter> contient les caractères
<literal>\n</literal>, <literal>\r</literal> etc., ils seront
convertis à la mode du langage C, alors que les autres
caractères non-alphanumériques ayant un code ASCII inférieur
à 26, et supérieur à 126 sont remplacés par leur représentation
octale.
</para>
<para>
Lorsque vous définissez une séquence de caractères
dans le paramètre <parameter>characters</parameter>, assurez-vous
que vous connaissez bien tous les caractères qui viennent entre
vos limites d'intervalles.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo addcslashes('foo[ ]', 'A..z');
// Affiche : \f\o\o\[ \]
// Toutes les majuscules et minuscules seront échappées
// ... mais aussi les caractères [\]^_`
?>
]]>
</programlisting>
</informalexample>
De plus, si le premier caractère d'un intervalle a un code ASCII
plus grand que le second, l'intervalle ne sera pas créé.
Seules les bornes de l'intervalle et le caractère point (.) seront
échappés. Utilisez la fonction <function>ord</function> pour
trouver la valeur ASCII d'un caractère.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo addcslashes("zoo['.']", 'z..A');
// Affiche : \zoo['\.']
?>
]]>
</programlisting>
</informalexample>
</para>
<para>
Attention à l'utilisation des caractères tels que 0, a, b, f, n, r,
t et v. Ils seront convertis en \0, \a, \b, \f, \n, \r, \t et \v,
tous étant des séquences d'échappement en C. La plupart de ces séquences
sont aussi définies dans d'autres langages dérivés du C, incluant PHP,
ce qui signifie que vous n'obtiendrez pas le résultat attendu si vous
utilisez la sortie de la fonction <function>addcslashes</function>
pour générer du code pour ces langages avec les caractères définis
dans le paramètre <parameter>characters</parameter>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne la chaîne, échappée.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<parameter>characters</parameter> peut s'écrire "\0..\37", ce qui
identifie tous les caractères ASCII dont le code est entre
0 et 37.
<example>
<title>Exemple avec <function>addcslashes</function></title>
<programlisting role="php">
<![CDATA[
<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>stripcslashes</function></member>
<member><function>stripslashes</function></member>
<member><function>addslashes</function></member>
<member><function>htmlspecialchars</function></member>
<member><function>quotemeta</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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
-->