-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathrequest-parse-body.xml
148 lines (140 loc) · 5.07 KB
/
request-parse-body.xml
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 4bf789e981af0836c41daa16e57ef86c21497faa Maintainer: ippey Status: ready -->
<!-- Credits: ippey -->
<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>リクエストボディを読み取り、解析して結果を返す</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>
この関数は リクエストボディを読み取り、
<literal>Content-Type</literal> ヘッダーに基づき解析します。
現在、2つのコンテンツタイプをサポートしています:
</simpara>
<itemizedlist>
<listitem>
<simpara>
<literal>application/x-www-form-urlencoded</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>multipart/form-data</literal>
</simpara>
</listitem>
</itemizedlist>
<simpara>
この関数は、 <literal>POST</literal> 以外のHTTPメソッドで送信された
<literal>multipart/form-data</literal> を解析するために使用されます。
これらのリクエストでは、スーパーグローバルの
<varname>$_POST</varname> や <varname>$_FILES</varname> は自動的に設定されません。
</simpara>
<caution>
<simpara>
<function>request_parse_body</function> は、リクエストボディを
<literal>php://input</literal> ストリームにバッファせずに処理します。
</simpara>
</caution>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<simpara>
<parameter>options</parameter> パラメータは連想配列を受け取り、
リクエストボディの解析に関連する以下のグローバル &php.ini; の設定を上書きします。
</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> は、 <varname>$_POST</varname> に相当するものを
インデックス <literal>0</literal> に、 <varname>$_FILES</varname> に相当するものを <literal>1</literal> に
持つ配列ペアを返します。
</simpara>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<simpara>
<literal>Content-Type</literal> ヘッダーに基づいて解析を試み、リクエストボディが無効な場合、
<exceptionname>RequestParseBodyException</exceptionname> をスローします。
</simpara>
<simpara>
<parameter>options</parameter> に無効なキーが含まれている、
または、対応するキーに無効な値が設定されている場合は、
<exceptionname>ValueError</exceptionname> をスローします。
</simpara>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example xml:id="function.request-parse-body.example.basic">
<title><function>request_parse_body</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
// Parse request and store result in the $_POST and $_FILES superglobals.
[$_POST, $_FILES] = request_parse_body();
// Echo the content of some transferred file
echo file_get_contents($_FILES['file_name']['tmp_name']);
?>
]]>
</programlisting>
</example>
<example xml:id="function.request-parse-body.example.options">
<title>オプションを設定した <function>request_parse_body</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
// form.php
assert_logged_in();
// Only for this form, we allow a bigger upload size.
[$_POST, $_FILES] = request_parse_body([
'post_max_size' => '10M',
'upload_max_filesize' => '10M',
]);
// Do something with the uploaded files.
?>
]]>
</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
-->