]> granicus.if.org Git - apache/blob - docs/manual/expr.html.fr
Update transformations.
[apache] / docs / manual / expr.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Les expressions dans le serveur HTTP Apache - Serveur Apache HTTP</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
15 <p class="apache">Serveur Apache HTTP Version 2.3</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.3</a></div><div id="page-content"><div id="preamble"><h1>Les expressions dans le serveur HTTP Apache</h1>
20 <div class="toplang">
21 <p><span>Langues Disponibles: </span><a href="./en/expr.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="./fr/expr.html" title="Français">&nbsp;fr&nbsp;</a> |
23 <a href="./zh-cn/expr.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
24 </div>
25
26     <p>Historiquement, il existe de nombreuses variantes dans la syntaxe
27     des expressions permettant d'exprimer une condition dans les
28     différents modules du serveur HTTP Apache. À ce titre, des travaux sont
29     en cours pour n'utiliser qu'une seule variante nommée
30     <em>ap_expr</em>, pour toutes les directives de configuration. Ce
31     document décrit l'interpréteur d'expressions <em>ap_expr</em>.
32     </p>
33     <p>Le type d'expression <em>ap_expr</em> est appelé à remplacer la
34     plupart des autres types d'expressions dans HTTPD. Par exemple, la
35     directive obsolète <code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code> peut être remplacée par la
36     directive <a href="mod/mod_authz_core.html#reqexpr">Require
37     expr</a>.
38     </p>
39   </div>
40 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#grammar">Syntaxe en Forme de Backus-Naur</a></li>
41 <li><img alt="" src="./images/down.gif" /> <a href="#vars">Variables</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#binop">Opérateurs binaires</a></li>
43 <li><img alt="" src="./images/down.gif" /> <a href="#unnop">Opérateurs unaires</a></li>
44 <li><img alt="" src="./images/down.gif" /> <a href="#functions">Fonctions</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#other">Autres</a></li>
46 <li><img alt="" src="./images/down.gif" /> <a href="#sslrequire">Comparaison avec SSLRequire</a></li>
47 </ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="directive"><a href="./mod/core.html#if">If</a></code></li><li><code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#elseif">&lt;ElseIf&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#else">&lt;Else&gt;</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvifexpr">SetEnvIfExpr</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code></li><li><a href="mod/mod_authz_core.html#reqexpr">Require expr</a></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code></li><li><code class="directive"><a href="./mod/mod_log_debug.html#logmessage">LogMessage</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li></ul></div>
48 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
49 <div class="section">
50 <h2><a name="grammar" id="grammar">Syntaxe en Forme de Backus-Naur</a></h2>
51     
52       <p>La <a href="http://fr.wikipedia.org/wiki/Forme_de_Backus-Naur">Forme de Backus-Naur</a>
53       (souvent abrégée en BNF, de l'anglais Backus-Naur Form) est une notation permettant de décrire
54       les règles syntaxiques des langages de programmation.
55       </p>
56 <blockquote>
57 <pre>
58 expr        ::= "<strong>true</strong>" | "<strong>false</strong>"
59               | "<strong>!</strong>" expr
60               | expr "<strong>&amp;&amp;</strong>" expr
61               | expr "<strong>||</strong>" expr
62               | "<strong>(</strong>" expr "<strong>)</strong>"
63               | comp
64
65 comp        ::= stringcomp
66               | integercomp
67               | unaryop word
68               | word binaryop word
69               | word "<strong>in</strong>" "<strong>{</strong>" wordlist "<strong>}</strong>"
70               | word "<strong>in</strong>" listfunction
71               | word "<strong>=~</strong>" regex
72               | word "<strong>!~</strong>" regex
73
74
75 stringcomp  ::= word "<strong>==</strong>" word
76               | word "<strong>!=</strong>" word
77               | word "<strong>&lt;</strong>"  word
78               | word "<strong>&lt;=</strong>" word
79               | word "<strong>&gt;</strong>"  word
80               | word "<strong>&gt;=</strong>" word
81
82 integercomp ::= word "<strong>-eq</strong>" word | word "<strong>eq</strong>" word
83               | word "<strong>-ne</strong>" word | word "<strong>ne</strong>" word
84               | word "<strong>-lt</strong>" word | word "<strong>lt</strong>" word
85               | word "<strong>-le</strong>" word | word "<strong>le</strong>" word
86               | word "<strong>-gt</strong>" word | word "<strong>gt</strong>" word
87               | word "<strong>-ge</strong>" word | word "<strong>ge</strong>" word
88
89 wordlist    ::= word
90               | wordlist "<strong>,</strong>" word
91
92 word        ::= word "<strong>.</strong>" word
93               | digit
94               | "<strong>'</strong>" string "<strong>'</strong>"
95               | "<strong>"</strong>" string "<strong>"</strong>"
96               | variable
97               | rebackref
98               | function
99
100 string      ::= stringpart
101               | string stringpart
102
103 stringpart  ::= cstring
104               | variable
105               | rebackref
106
107 cstring     ::= ...
108 digit       ::= [0-9]+
109
110 variable    ::= "<strong>%{</strong>" varname "<strong>}</strong>"
111               | "<strong>%{</strong>" funcname "<strong>:</strong>" funcargs "<strong>}</strong>"
112
113 rebackref   ::= "<strong>$</strong>" [0-9]
114
115 function     ::= funcname "<strong>(</strong>" word "<strong>)</strong>"
116
117 listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
118 </pre>
119 </blockquote>
120
121 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
122 <div class="section">
123 <h2><a name="vars" id="vars">Variables</a></h2>
124     
125
126     <p>L'interpréteur d'expressions fournit plusieurs variables de la
127     forme <code>%{HTTP_HOST}</code>. Notez que la valeur d'une variable
128     peut dépendre de la phase du traitement de la requête au cours de
129     laquelle elle est évaluée. Par exemple, une expression utilisée dans
130     une directive <code class="directive">&lt;If &gt;</code> sera évaluée avant
131     la phase d'authentification. Par conséquent, la variable
132     <code>%{REMOTE_USER}</code> ne sera pas encore définie à ce stade.</p>
133
134     <p>Les variables suivantes contiennent la valeur de l'en-tête de
135     requête HTTP correspondant. La <a href="#functions">fonction</a>
136     <code>req</code> permet d'extraire les valeurs des autres en-têtes.</p>
137
138     <table class="bordered"><tr class="header"><th>Nom</th></tr>
139 <tr><td><code>HTTP_ACCEPT</code></td></tr>
140 <tr class="odd"><td><code>HTTP_FORWARDED</code></td></tr>
141 <tr><td><code>HTTP_HOST</code></td></tr>
142 <tr class="odd"><td><code>HTTP_PROXY_CONNECTION</code></td></tr>
143 <tr><td><code>HTTP_REFERER</code></td></tr>
144 <tr class="odd"><td><code>HTTP_USER_AGENT</code></td></tr>
145 </table>
146
147     <p>Autres variables liées aux requêtes</p>
148
149     <table class="bordered"><tr class="header"><th>Nom</th><th>Description</th></tr>
150 <tr><td><code>REQUEST_METHOD</code></td>
151         <td>La méthode HTTP de la requête entrante (par exemple
152         <code>GET</code>)</td></tr>
153 <tr class="odd"><td><code>REQUEST_SCHEME</code></td>
154         <td>Le protocole associé à l'URI de la requête</td></tr>
155 <tr><td><code>REQUEST_URI</code></td>
156         <td>La partie chemin de l'URI de la requête</td></tr>
157 <tr class="odd"><td><code>DOCUMENT_URI</code></td>
158         <td>Idem REQUEST_URI</td></tr>
159 <tr><td><code>REQUEST_FILENAME</code></td>
160         <td>Le chemin complet dans le système de fichiers local du
161         fichier ou du script correspondant à la requête, si le serveur
162         l'a dèjà déterminé à l'instant où <code>REQUEST_FILENAME</code>
163         est référencée. Dans le cas contraire, comme dans un
164         contexte de serveur virtuel, même valeur que <code>REQUEST_URI</code> </td></tr>
165 <tr class="odd"><td><code>SCRIPT_FILENAME</code></td>
166         <td>Identique à <code>REQUEST_FILENAME</code></td></tr>
167 <tr><td><code>LAST_MODIFIED</code></td>
168         <td>La date et heure de dernière modification du fichier au
169         format <code>20101231235959</code>, si elle est déjà connue du
170         serveur au moment où <code>LAST_MODIFIED</code> est référencé.
171         </td></tr>
172 <tr class="odd"><td><code>SCRIPT_USER</code></td>
173         <td>Le nom d'utilisateur du propriétaire du script.</td></tr>
174 <tr><td><code>SCRIPT_GROUP</code></td>
175         <td>Le nom du groupe auquel appartient le script.</td></tr>
176 <tr class="odd"><td><code>PATH_INFO</code></td>
177         <td>L'information relative au nom de chemin située en fin, voir
178         la directive <code class="directive"><a href="./mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></td></tr>
179 <tr><td><code>QUERY_STRING</code></td>
180         <td>La chaîne de paramètres de la requête courante</td></tr>
181 <tr class="odd"><td><code>IS_SUBREQ</code></td>
182         <td>"<code>true</code>" si la requête courante est une
183         sous-requête, "<code>false</code>" dans le cas contraire</td></tr>
184 <tr><td><code>THE_REQUEST</code></td>
185         <td>La requête complète (par exemple "<code>GET /index.html
186         HTTP/1.1</code>")</td></tr>
187 <tr class="odd"><td><code>REMOTE_ADDR</code></td>
188         <td>L'adresse IP de l'hôte distant</td></tr>
189 <tr><td><code>REMOTE_HOST</code></td>
190         <td>Le nom d'hôte de l'hôte distant</td></tr>
191 <tr class="odd"><td><code>REMOTE_USER</code></td>
192         <td>Le nom de l'utilisateur authentifié (s'il existe)</td></tr>
193 <tr><td><code>REMOTE_IDENT</code></td>
194         <td>Le nom de l'utilisateur défini par <code class="module"><a href="./mod/mod_ident.html">mod_ident</a></code></td></tr>
195 <tr class="odd"><td><code>SERVER_NAME</code></td>
196         <td>La valeur de la directive <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> du serveur virtuel courant</td></tr>
197 <tr><td><code>SERVER_PORT</code></td>
198         <td>Le port associé au serveur virtuel courant ; voir la
199         directive <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code></td></tr>
200 <tr class="odd"><td><code>SERVER_ADMIN</code></td>
201         <td>La valeur de la directive <code class="directive"><a href="./mod/core.html#serveradmin">ServerAdmin</a></code> du serveur virtuel courant</td></tr>
202 <tr><td><code>SERVER_PROTOCOL</code></td>
203         <td>Le protocole utilisé par la requête</td></tr>
204 <tr class="odd"><td><code>DOCUMENT_ROOT</code></td>
205         <td>La valeur de la directive <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> du serveur virtuel
206         courant</td></tr>
207 <tr><td><code>AUTH_TYPE</code></td>
208         <td>La valeur de la directive <code class="directive"><a href="./mod/mod_authn_core.html#authtype">AuthType</a></code> (par exemple
209         "<code>basic</code>")</td></tr>
210 <tr class="odd"><td><code>CONTENT_TYPE</code></td>
211         <td>Le type de contenu de la réponse</td></tr>
212 <tr><td><code>HANDLER</code></td>
213         <td>Le nom du <a href="handler.html">gestionnaire</a> qui a
214         généré la réponse</td></tr>
215 <tr class="odd"><td><code>HTTPS</code></td>
216         <td>"<code>on</code>" si la requête utilise https,
217         "<code>off</code>" dans le cas contraire</td></tr>
218 <tr><td><code>IPV6</code></td>
219         <td>"<code>on</code>" si la connexion utilise IPv6,
220         "<code>off</code>" dans le cas contraire</td></tr>
221 <tr class="odd"><td><code>REQUEST_STATUS</code></td>
222         <td>Le code d'erreur HTTP de la requête</td></tr>
223 <tr><td><code>REQUEST_LOG_ID</code></td>
224         <td>L'identifiant du message d'erreur associé à la requête (voir
225         la directive <code class="directive"><a href="./mod/core.html#errorlogformat">ErrorLogFormat</a></code>)</td></tr>
226 <tr class="odd"><td><code>CONN_LOG_ID</code></td>
227         <td>L'identifiant du message d'erreur associé à la connexion
228         (voir la directive <code class="directive"><a href="./mod/core.html#errorlogformat">ErrorLogFormat</a></code>)</td></tr>
229 </table>
230
231     <p>Variables diverses</p>
232
233     <table class="bordered"><tr class="header"><th>Nom</th><th>Description</th></tr>
234 <tr><td><code>TIME_YEAR</code></td>
235         <td>L'année courante (par exemple <code>2010</code>)</td></tr>
236 <tr class="odd"><td><code>TIME_MON</code></td>
237         <td>Le mois courant (<code>1</code>, ..., <code>12</code>)</td></tr>
238 <tr><td><code>TIME_DAY</code></td>
239         <td>Le jour courant dans le mois</td></tr>
240 <tr class="odd"><td><code>TIME_HOUR</code></td>
241         <td>Les heures de la date courante (<code>0</code>, ...,
242         <code>23</code>)</td></tr>
243 <tr><td><code>TIME_MIN</code></td>
244         <td>Les minutes de la date courante</td></tr>
245 <tr class="odd"><td><code>TIME_SEC</code></td>
246         <td>Les secondes de la date courante</td></tr>
247 <tr><td><code>TIME_WDAY</code></td>
248         <td>Le jour de la semaine (à partir de <code>0</code> pour
249         dimanche)</td></tr>
250 <tr class="odd"><td><code>TIME</code></td>
251         <td>La date et heure au format <code>20101231235959</code></td></tr>
252 <tr><td><code>SERVER_SOFTWARE</code></td>
253         <td>La chaîne contenant la version du serveur</td></tr>
254 <tr class="odd"><td><code>API_VERSION</code></td>
255         <td>La date de la version de l'API (module magic number)</td></tr>
256 </table>
257
258     <p>Certains modules, comme <code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code>, définissent des
259     variables supplémentaires.</p>
260
261 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
262 <div class="section">
263 <h2><a name="binop" id="binop">Opérateurs binaires</a></h2>
264     
265
266     <p>À l'exception de quelques opérateurs de comparaison internes, les
267     opérateurs binaires sont de la forme
268     "<code>-[a-zA-Z][a-zA-Z0-9_]+</code>", autrement dit un signe moins
269     et au moins deux caractères. Le nom est insensible à la casse. Les
270     modules peuvent fournir des opérateurs binaires supplémentaires.</p>
271
272     <h3><a name="comp" id="comp">Opérateurs de comparaison</a></h3>
273     
274
275     <table class="bordered"><tr class="header"><th>Nom</th><th>Alternative</th> <th>Description</th></tr>
276 <tr><td><code>==</code></td>
277         <td><code>=</code></td>
278         <td>Egalité de chaînes</td></tr>
279 <tr class="odd"><td><code>!=</code></td>
280         <td />
281         <td>Inégalité de chaînes</td></tr>
282 <tr><td><code>&lt;</code></td>
283         <td />
284         <td>Chaîne inférieure à</td></tr>
285 <tr class="odd"><td><code>&lt;=</code></td>
286         <td />
287         <td>Chaîne inférieure ou égale à</td></tr>
288 <tr><td><code>&gt;</code></td>
289         <td />
290         <td>Chaîne supérieure à</td></tr>
291 <tr class="odd"><td><code>&gt;=</code></td>
292         <td />
293         <td>Chaîne supérieure ou égale à</td></tr>
294 <tr><td><code>-eq</code></td>
295         <td><code>eq</code></td>
296         <td>Egalité d'entiers</td></tr>
297 <tr class="odd"><td><code>-ne</code></td>
298         <td><code>ne</code></td>
299         <td>Inégalité d'entiers</td></tr>
300 <tr><td><code>-lt</code></td>
301         <td><code>lt</code></td>
302         <td>Entier inférieur à</td></tr>
303 <tr class="odd"><td><code>-le</code></td>
304         <td><code>le</code></td>
305         <td>Entier inférieur ou égal à</td></tr>
306 <tr><td><code>-gt</code></td>
307         <td><code>gt</code></td>
308         <td>Entier supérieur à</td></tr>
309 <tr class="odd"><td><code>-ge</code></td>
310         <td><code>ge</code></td>
311         <td>Entier supérieur ou égal à</td></tr>
312 </table>
313     
314
315     <h3><a name="binaryother" id="binaryother">Autres opérateurs binaires</a></h3>
316     
317
318     <table class="bordered"><tr class="header"><th>Nom</th><th>Description</th></tr>
319 <tr><td><code>-ipmatch</code></td>
320         <td>L'adresse IP correspond à adresse/masque</td></tr>
321 <tr class="odd"><td><code>-strmatch</code></td>
322         <td>la chaîne de gauche correspond au modèle constitué par la
323         chaîne de droite (contenant des caractères génériques *, ?, [])</td></tr>
324 <tr><td><code>-strcmatch</code></td>
325         <td>idem <code>-strmatch</code>, mais insensible à la casse</td></tr>
326 <tr class="odd"><td><code>-fnmatch</code></td>
327         <td>idem <code>-strmatch</code>, mais les slashes ne sont pas
328         pris en compte par les caractères génériques</td></tr>
329 </table>
330     
331
332 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
333 <div class="section">
334 <h2><a name="unnop" id="unnop">Opérateurs unaires</a></h2>
335     
336
337     <p>Les opérateurs unaires acceptent un seul argument et sont
338     de la forme "<code>-[a-zA-Z]</code>",
339     autrement dit le signe moins et un caractère. Le nom <em>est</em>
340     sensible à la casse. Les modules peuvent fournir des opérateurs
341     unaires supplémentaires.</p>
342
343     <table class="bordered"><tr class="header"><th>Nom</th><th>Description</th><th>Restreint</th></tr>
344 <tr><td><code>-d</code></td>
345         <td>L'argument est traité comme un nom de fichier. 
346         Vrai si le fichier existe et correspond à un
347         répertoire</td><td>oui</td></tr>
348 <tr class="odd"><td><code>-e</code></td>
349         <td>L'argument est traité comme un nom de fichier. Vrai si le
350         fichier (ou dir ou special) existe</td><td>oui</td></tr>
351 <tr><td><code>-f</code></td>
352         <td>L'argument est traité comme un nom de fichier. Vrai si le
353         fichier existe et correspond à un fichier
354         régulier</td><td>oui</td></tr>
355 <tr class="odd"><td><code>-L</code></td>
356         <td>L'argument est traité comme un nom de fichier. Vrai si le
357         fichier existe et correspond à un lien
358         symbolique</td><td>oui</td></tr>
359 <tr><td><code>-h</code></td>
360         <td>L'argument est traité comme un nom de fichier. Vrai si le
361         fichier existe et correspond à un lien symbolique
362         (identique à <code>-L</code>)</td><td>oui</td></tr>
363 <tr class="odd"><td><code>-F</code></td>
364         <td>Vrai si la chaîne correspond a un fichier valide, accessible
365         avec tous les contrôles d'accès configurés pour ce chemin. A
366         cette fin, une sous-requête effectue la vérification, et vous
367         devez utiliser ce drapeau avec soin car il peut impacter les
368         performances de votre serveur !</td><td /></tr>
369 <tr><td><code>-U</code></td>
370         <td>Vrai si la chaîne correspond a une URL valide, accessible
371         avec tous les contrôles d'accès configurés pour ce chemin. A
372         cette fin, une sous-requête effectue la vérification, et vous
373         devez utiliser ce drapeau avec soin car il peut impacter les
374         performances de votre serveur !</td><td /></tr>
375 <tr class="odd"><td><code>-A</code></td>
376         <td>Alias pour <code>-U</code></td><td /></tr>
377 <tr><td><code>-n</code></td>
378         <td>Vrai si la chaîne n'est pas vide</td><td /></tr>
379 <tr class="odd"><td><code>-z</code></td>
380         <td>Vrai si la chaîne est vide</td><td /></tr>
381 <tr><td><code>-T</code></td>
382         <td>Faux si la chaîne est vide, "<code>0</code>",
383         "<code>off</code>", "<code>false</code>", ou "<code>no</code>"
384         (insensibilité à la casse). Vrai dans le cas contraire.</td><td /></tr>
385 <tr class="odd"><td><code>-R</code></td>
386         <td>Idem "<code>%{REMOTE_ADDR} -ipmatch ...</code>", en plus
387         efficace
388         </td><td /></tr>
389 </table>
390
391     <p>Les opérateurs marqués comme "restreints" ne sont pas disponibles
392     avec certains modules comme <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>.</p>
393
394 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
395 <div class="section">
396 <h2><a name="functions" id="functions">Fonctions</a></h2>
397     
398
399     <p>Normalement, les fonctions dont la valeur est une chaîne acceptent une chaîne
400     comme argument et renvoient une chaîne. Les noms de fonctions sont
401     insensibles à la casse. Les modules peuvent fournir des fonctions
402     supplémentaires.</p>
403
404     <table class="bordered"><tr class="header"><th>Nom</th><th>Description</th><th>Restreint</th></tr>
405 <tr><td><code>req</code>, <code>http</code></td>
406         <td>Lit l'en-tête de requête HTTP</td><td /></tr>
407 <tr class="odd"><td><code>resp</code></td>
408         <td>Lit l'en-tête de réponse HTTP</td><td /></tr>
409 <tr><td><code>reqenv</code></td>
410         <td>Recherche une variable d'environnement de requête</td><td /></tr>
411 <tr class="odd"><td><code>osenv</code></td>
412         <td>Recherche une variable d'environnement du système
413         d'exploitation</td><td /></tr>
414 <tr><td><code>note</code></td>
415         <td>Recherche une note de requête</td><td /></tr>
416 <tr class="odd"><td><code>env</code></td>
417         <td>Renvoie le premier résultat positif de <code>note</code>,
418         <code>reqenv</code>, <code>osenv</code></td><td /></tr>
419 <tr><td><code>tolower</code></td>
420         <td>Convertit une chaîne en minuscules</td><td /></tr>
421 <tr class="odd"><td><code>toupper</code></td>
422         <td>Convertit une chaîne en majuscules</td><td /></tr>
423 <tr><td><code>escape</code></td>
424         <td>Echappe les caractères spéciaux en codage hexadécimal</td><td /></tr>
425 <tr class="odd"><td><code>unescape</code></td>
426         <td>"Déséchappe" les chaînes codées
427         en hexadécimal, en ne gardant encodés que les slashes; renvoie la chaîne vide
428         si la séquence %00 est rencontrée</td><td /></tr>
429 <tr><td><code>file</code></td>
430         <td>Lit le contenu d'un fichier</td><td>oui</td></tr>
431 <tr class="odd"><td><code>filesize</code></td>
432         <td>Renvoie la taille d'un fichier (ou 0 si le fichier n'existe
433         pas ou ne correspond pas à un fichier régulier)</td><td>oui</td></tr>
434 </table>
435
436     <p>Les fonctions marquées comme "restreints" ne sont pas disponibles
437     avec certains modules comme <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>.</p>
438
439     <p>En plus des fonctions dont la valeur est une chaîne, il existe
440     aussi des fonctions dont la valeur est une liste, qui acceptent une
441     chaîne comme argument, et renvoient une liste de mots, autrement dit
442     une liste de chaînes. La liste de mot peut être utilisée avec
443     l'opérateur spécial <code>-in</code>. Les noms de fonctions sont
444     insensibles à la casse. Les modules peuvent fournir des fonctions
445     supplémentaires.</p>
446
447     <p>Il n'existe pas de fonctions internes dont la valeur est une
448     liste. Le module <code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> fournit la fonction
449     <code>PeerExtList</code>. Voir la description de la directive
450     <code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code> pour plus de
451     détails (notez que la fonction <code>PeerExtList</code> peut aussi
452     être utilisée en dehors de la directive <code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code>).</p>
453
454 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
455 <div class="section">
456 <h2><a name="other" id="other">Autres</a></h2>
457     
458
459     <table class="bordered"><tr class="header"><th>Nom</th><th>Alternative</th> <th>Description</th></tr>
460 <tr><td><code>-in</code></td>
461         <td><code>in</code></td>
462         <td>chaîne contenue dans une liste de chaînes</td></tr>
463 <tr class="odd"><td><code>/regexp/</code></td>
464         <td><code>m#regexp#</code></td>
465         <td>Expression rationnelle (la seconde forme permet de spécifier
466         des délimiteurs autres que /)</td></tr>
467 <tr><td><code>/regexp/i</code></td>
468         <td><code>m#regexp#i</code></td>
469         <td>Expression rationnelle insensible à la casse</td></tr>
470 <tr class="odd"><td><code>$0 ... $9</code></td>
471         <td />
472         <td>Références arrières dans les expressions rationnelles</td></tr>
473 </table>
474
475     <h3><a name="rebackref" id="rebackref">Références arrières dans les expressions rationnelles</a></h3>
476         
477         <p>Les chaînes <code>$0</code> ... <code>$9</code> permettent de
478         référencer les groupes de capture en provenance d'expressions
479         rationnelles précédemment exécutées et mises en correspondance avec
480         succès. Elles ne peuvent normalement être utilisées que dans la
481         même expression que celle mise en correspondance, mais certains
482         modules permettent de les utiliser de manière spéciale.</p>
483     
484
485 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
486 <div class="section">
487 <h2><a name="sslrequire" id="sslrequire">Comparaison avec SSLRequire</a></h2>
488     
489     <p>La syntaxe <em>ap_expr</em> consiste principalement en une
490     surcouche de la syntaxe de la directive obsolète <code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code>. Vous pouvez consulter la
491     liste de leur différences dans la documentation de la directive
492     <code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code>.</p>
493 </div></div>
494 <div class="bottomlang">
495 <p><span>Langues Disponibles: </span><a href="./en/expr.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
496 <a href="./fr/expr.html" title="Français">&nbsp;fr&nbsp;</a> |
497 <a href="./zh-cn/expr.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
498 </div><div id="footer">
499 <p class="apache">Copyright 2011 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
500 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div>
501 </body></html>