dams Tue Feb 20 00:22:16 2001 EDT Modified files: /phpdoc/fr/functions pcre.xml Log: Added new flag for preg_split
Index: phpdoc/fr/functions/pcre.xml diff -u phpdoc/fr/functions/pcre.xml:1.16 phpdoc/fr/functions/pcre.xml:1.17 --- phpdoc/fr/functions/pcre.xml:1.16 Wed Feb 7 13:59:34 2001 +++ phpdoc/fr/functions/pcre.xml Tue Feb 20 00:22:15 2001 @@ -141,8 +141,9 @@ <computeroutput> Le nom de domaine est : php.net </computeroutput> - Voir aussi <function>preg_match_all</function>, <function>preg_replace</function> - et <function>preg_split</function>. + Voir aussi <function>preg_match_all</function>, + <function>preg_replace</function> et + <function>preg_split</function>. </para> </refsect1> </refentry> @@ -380,7 +381,7 @@ <para> <literal>/F</literal> indique que le paramètre <parameter>replacement</parameter> doit être considéré - comme un nom de fonction. Cette fonction sera appelée, avec un + comme un nom de fonction. Cette fonction sera appelée, avec un tableau contenant les éléments trouvés comme arguments. La fonctoin doit retourner la chaine de remplacement. Cette option a été ajoutée en PHP 4.0.4. @@ -458,7 +459,8 @@ </para> </note> <para> - Voir aussi <function>preg_match</function>, <function>preg_match_all</function> + Voir aussi <function>preg_match</function>, + <function>preg_match_all</function> et <function>preg_split</function>. </para> </refsect1> @@ -485,26 +487,50 @@ </paramdef> </funcprototype> </funcsynopsis> - <note> - <para> - Le paramètre <parameter>flags</parameter> a été - ajouté dans PHP Beta 3. - </para> - </note> <para> - Retourne un tableau contenant les sous chaînes - de <parameter>subject</parameter>, séparées - par les chaînes qui vérifient <parameter>pattern</parameter>. + <function>preg_split</function> retourne un tableau contenant les + sous-chaînes de <parameter>subject</parameter>, + séparées par les chaînes qui vérifient + <parameter>pattern</parameter>. </para> <para> - Si <parameter>limit</parameter> est donné, seules - les <parameter>limit</parameter> premières chaînes - seront retournées. + Si <parameter>limit</parameter> est spécifié, alors seules les + <parameter>limit</parameter> premières sous-chaînes sont +retournées + et si <parameter>limit</parameter> vaut -1, cela signifie en fait + "sans limite", ce qui est utile pour passer le paramètre + <parameter>flags</parameter>. </para> <para> - Si le flag est PREG_SPLIT_NO_EMPTY, alors seul les sous chaînes - non nulles seront retournées. - </para> + <parameter>flags</parameter> peut être la combinaison des + options suivantes (combinées avec l'opérateur +<literal>|</literal>): + <variablelist> + <varlistentry> + <term>PREG_SPLIT_NO_EMPTY</term> + <listitem> + <simpara> + Si cette option est activée, seules les sous-chaînes non +vides + seront retournées par <function>preg_split</function>. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>PREG_SPLIT_DELIM_CAPTURE</term> + <listitem> + <simpara> + Si cette option est activée, les expressions entre +parenthèses entre + les délimiteurs de masques seront aussi capturées et +retournées. + Cette option a été ajoutée en PHP 4.0.5. + </simpara> + </listitem> + </varlistentry> + </variablelist> + </para> + <note> + <para> + Le paramètre <parameter>flags</parameter> a été + ajouté dans PHP Beta 3. + </para> + </note> <para> <example> <title>Eclatement d'une chaîne de recherche.</title> @@ -523,7 +549,7 @@ <programlisting role="php"> <?php $str = 'string'; -$chars = preg_split('//', $str, 0, PREG_SPLIT_NO_EMPTY); +$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); print_r($chars); ?> </programlisting> @@ -915,7 +941,7 @@ </listitem> <listitem> <simpara> - De manière assez évidente, PCRE n'accepte pas la construction + De manière assez évidente, PCRE n'accepte pas la construction (?{code}). </simpara> </listitem> @@ -1207,7 +1233,7 @@ il faut écrire : "<literal>\\</literal>". </para> <para> - Si un masque est utilisé avec l'option + Si un masque est utilisé avec l'option <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>, les espaces blancs du masque, mais qui ne sont pas dans une classe de caractères, et les caractères entre dièses @@ -1369,7 +1395,7 @@ <term><emphasis>\11</emphasis></term> <listitem> <simpara> - peut être une référence de retour, + peut être une référence de retour, ou une tabulation </simpara> </listitem> @@ -1581,9 +1607,9 @@ Les assertions <literal>\A</literal>, <literal>\Z</literal>, et <literal>\z</literal> diffèrent des méta caractères <literal>^</literal> et <literal>$</literal> dans la mesure oú - ils ne sont pas dépendants des options, notamment + ils ne sont pas dépendants des options, notamment <link linkend="pcre.pattern.modifiers">PCRE_NOTBOL</link> - ou <link linkend="pcre.pattern.modifiers">PCRE_NOTEOL</link>. + ou <link linkend="pcre.pattern.modifiers">PCRE_NOTEOL</link>. La différence entre <literal>\Z</literal> et <literal>\z</literal> tient au fait que <literal>\Z</literal> recherche les positions avant les nouvelles lignes et à la fin de la @@ -1639,13 +1665,13 @@ à l'amener à ce qu'il puisse se trouver immédiatement avant et immédiatement après un caractère de nouvelle ligne "<literal>\n</literal>". Cela se fait en ajoutant l'option - <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> au moment de + <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> au moment de la compilation ou de l'exécution. Par exemple, le masque <literal>/^abc$/</literal> accepte la chaîne "<literal>def\nabc</literal>" uniquement en mode multi-lignes. Par conséquent, toutes les parties du masques qui commencent par "<literal>^</literal>" ne sont pas ancrées, en mode multi-lignes. - L'option <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> + L'option <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> est ignorée si l'option <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> est choisie. </para> @@ -1654,7 +1680,7 @@ <literal>\Z</literal>, et <literal>\z</literal> peuvent servir à répérer le début et la fin du sujet, et toutes les parties du masque qui commenceront par <literal>\A</literal> seront toujours - ancrées, avec l'option + ancrées, avec l'option <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> ou non. </para> </refsect2> @@ -1663,7 +1689,7 @@ <simpara> En dehors d'une classe de caractères, un point remplace n'importe quel caractère, même invisible et à l'exception du - caractère de nouvelle ligne. Avec l'option + caractère de nouvelle ligne. Avec l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> le point remplace n'importe quel caractère, même le caractère de nouvelle ligne. La gestion des points et complètement @@ -1716,7 +1742,7 @@ <para> Le caractère de nouvelle ligne n'est pas traité de manière spéciale dans les classes de caractères, - quelque soit l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> + quelque soit l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> ou <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>. Une classe telle que <literal>[^a]</literal> acceptera toujours une nouvelle ligne. </para> @@ -1792,12 +1818,12 @@ <refsect2 id="regexp.reference.internal_options"> <title>Options internes</title> <para> - Les options <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>, - <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>, - <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> et + Les options <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>, + <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>, + <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> et <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> peuvent - être changée à l'intérieur du masque - lui-même, avec des séquences mises entre + être changée à l'intérieur du masque + lui-même, avec des séquences mises entre "<literal>(?</literal>" et "<literal>)</literal>". Les options sont : <variablelist> @@ -1837,10 +1863,10 @@ Par exemple, <literal>(?im)</literal> rend le masque insensible à la casse, et multi-lignes. Il est possible d'annuler ces options en les faisant précéder par un signe <literal>-</literal> : par - exemple <literal>(?im-sx)</literal>, ajoutera les options + exemple <literal>(?im-sx)</literal>, ajoutera les options <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> - et <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> mais - annulera les options <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> + et <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> mais + annulera les options <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> et <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>. Si une option apparaît avant et après le signe moins, l'option sera annulée. @@ -1854,7 +1880,7 @@ de la même façons : <literal>(?i)abc</literal>, <literal>a(?i)bc</literal>, <literal>ab(?i)c</literal>, <literal>abc(?i)</literal>, et sont parfaitement équivalents au - masque <literal>abc</literal> avec l'option + masque <literal>abc</literal> avec l'option <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>. En d'autres termes, activer des séquences d'options dans le corps principal du masque revient à appliquer l'option à tout le masque, sauf @@ -1867,8 +1893,8 @@ l'intérieur d'un sous-masque n'affecte que cette partie du masque, ce qui fait que <literal>(a(?i)b)c</literal> acceptera <literal>abc</literal> et <literal>aBc</literal> mais aucune autre chaîne (en supposant que - <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> n'est pas - utilisé). Cela signifie que les options permettent d'avoir + <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> n'est pas + utilisé). Cela signifie que les options permettent d'avoir différente configuration de recherche pour différentes parties du masque. </para> @@ -1880,9 +1906,9 @@ "<literal>C</literal>", la première alternative qui porte l'option n'est pas prise en compte. Sinon, cela risque d'introduire des comportements très étranges : les options - spécifiques à PCRE telles que + spécifiques à PCRE telles que <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link> et - <link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link> peuvent + <link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link> peuvent être modifiées de la même manière, en utilisant respectivement les caractères U et X. L'option <literal>(?X)</literal> est particulière, @@ -2099,7 +2125,7 @@ </para> <para> Si un masque commence par <literal>..*</literal> ou <literal>.{0,}</literal> - et que l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> + et que l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> (équivalent en Perl à /s) est activée, c'est à dire en autorisant le remplacement des nouvelles lignes par un méta-caractère, alors le masque est @@ -2108,7 +2134,7 @@ comme si le masque se terminait par le méta caractère <literal>\A</literal>. Dans le cas oú on sait d'avance qu'il n'y aura pas de caractère de nouvelle ligne, activer l'option - <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> et commencer + <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> et commencer le masque par <literal>.*</literal> permet d'optmiser le masque. </para> <para> @@ -2449,7 +2475,7 @@ le sous-masque correspondant à ce numéro a réussi. Considérons le masque suivant, qui contient des espaces non significatifs pour le rendre plus compréhensible (on supposera - l'option <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> + l'option <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> activée) et qui est divisé en trois parties pour simplifier les explications : <literal>( \( )? [^()]+ (?(1) \) )</literal>. </para> @@ -2514,7 +2540,7 @@ d'utiliser la récursivité dans les masques (entre autre). L'option <literal>(?R)</literal> est fournie pour servir la cause de la récursivité. Le masque suivant résoud le - problème des parenthèses (l'option + problème des parenthèses (l'option <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> est utilisée pour ignorer les espaces) : <literal>\( ( (?>[^()]+) | (?R) )* \)</literal> @@ -2578,11 +2604,11 @@ propos de l'optimisation des expressions régulières. </para> <para> - Lorsqu'un masque commence par.* et que l'option + Lorsqu'un masque commence par.* et que l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> est activée, le masque est implicitement ancré par PCRE, étant donné qu'il ne peut que rechercher au début - de la chaîne. Cependant, si option + de la chaîne. Cependant, si option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> n'est pas activée, PCRE ne peut faire aucune optimisation car le méta-caractères point "<literal>.</literal>" @@ -2601,7 +2627,7 @@ à partir de chaque début de ligne. Si vous utilisez un tel masque avec des chaînes qui ne contiennent pas de caractères de nouvelles lignes, les meilleures performances - seront atteintes avec l'option + seront atteintes avec l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>, ou en ancrant le masque avec <literal>^.*</literal>. Cela évite à PCRE de scanner toute la chaîne pour rechercher un caractère