-
Notifications
You must be signed in to change notification settings - Fork 164
Expand file tree
/
Copy pathrequest-parse-body.xml
More file actions
154 lines (145 loc) · 5.13 KB
/
Copy pathrequest-parse-body.xml
File metadata and controls
154 lines (145 loc) · 5.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: c78af136d0497e16230218083ce43448f1864272 Maintainer: Fan2Shrek Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.request-parse-body" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>request_parse_body</refname>
<refpurpose>Lit et analyse le corps de la requête et retourne le résultat</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>request_parse_body</methodname>
<methodparam choice="opt"><type class="union"><type>array</type><type>null</type></type><parameter>options</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<simpara>
Cette fonction lit le corps de la requête et l'analyse en fonction de
l'en-tête <literal>Content-Type</literal>. Actuellement, deux types de
contenu sont pris en charge :
</simpara>
<itemizedlist>
<listitem>
<simpara>
<literal>application/x-www-form-urlencoded</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>multipart/form-data</literal>
</simpara>
</listitem>
</itemizedlist>
<simpara>
Cette fonction est principalement utilisée pour analyser les requêtes
<literal>multipart/form-data</literal> avec des verbes HTTP autres que
<literal>POST</literal> qui ne peuplent pas automatiquement les superglobales
<varname>$_POST</varname> et <varname>$_FILES</varname>.
</simpara>
<caution>
<simpara>
Le corps de la requête ne peut être consommé qu'une seule fois.
<function>request_parse_body</function> consomme le corps de la requête sans
le mettre en mémoire tampon dans le flux <literal>php://input</literal>.
Inversement, si le corps a déjà été lu (par exemple via
<literal>php://input</literal>), <function>request_parse_body</function>
retournera des données vides.
</simpara>
</caution>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<simpara>
Le paramètre <parameter>options</parameter> accepte un tableau associatif
pour remplacer les paramètres globaux du &php.ini; suivants pour
l'analyse du corps de la requête.
</simpara>
<itemizedlist>
<listitem><simpara><literal>max_file_uploads</literal></simpara></listitem>
<listitem><simpara><literal>max_input_vars</literal></simpara></listitem>
<listitem><simpara><literal>max_multipart_body_parts</literal></simpara></listitem>
<listitem><simpara><literal>post_max_size</literal></simpara></listitem>
<listitem><simpara><literal>upload_max_filesize</literal></simpara></listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
<function>request_parse_body</function> retourne un tableau avec l'équivalent
de <varname>$_POST</varname> à l'index <literal>0</literal> et
<varname>$_FILES</varname> à l'index <literal>1</literal>.
</simpara>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<simpara>
Lorsque le corps de la requête est invalide
selon l'en-tête <literal>Content-Type</literal>,
une <exceptionname>RequestParseBodyException</exceptionname> est lancée.
</simpara>
<simpara>
Une <exceptionname>ValueError</exceptionname> est lancée lorsque
<parameter>options</parameter> contient des clés invalides,
ou des valeurs invalides pour la clé correspondante.
</simpara>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example xml:id="function.request-parse-body.example.basic">
<title>Exemple de <function>request_parse_body</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Analyse la requête et stocke le résultat dans les superglobales $_POST et $_FILES.
[$_POST, $_FILES] = request_parse_body();
// Affiche le contenu d'un fichier transféré
echo file_get_contents($_FILES['file_name']['tmp_name']);
?>
]]>
</programlisting>
</example>
<example xml:id="function.request-parse-body.example.options">
<title>Exemple de <function>request_parse_body</function> avec des options personnalisées</title>
<programlisting role="php">
<![CDATA[
<?php
// form.php
assert_logged_in();
// Seulement pour ce formulaire, nous autorisons une taille de téléchargement plus grande.
[$_POST, $_FILES] = request_parse_body([
'post_max_size' => '10M',
'upload_max_filesize' => '10M',
]);
// Faire quelque chose avec les fichiers téléchargés.
?>
]]>
</programlisting>
</example>
</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
-->