forked from php/doc-ja
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfilter-input-array.xml
215 lines (204 loc) · 7.12 KB
/
filter-input-array.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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: de9c65c91ff1710d8b2d2ec955caea0162679305 Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<refentry xml:id="function.filter-input-array" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>filter_input_array</refname>
<refpurpose>外部から変数を受け取り、オプションでそれらをフィルタリングする</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>false</type><type>null</type></type><methodname>filter_input_array</methodname>
<methodparam><type>int</type><parameter>type</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>array</type><type>int</type></type><parameter>options</parameter><initializer><constant>FILTER_DEFAULT</constant></initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>add_empty</parameter><initializer>&true;</initializer></methodparam>
</methodsynopsis>
<para>
この関数を使用すると、大量のデータを取得する際に
<function>filter_input</function> を繰り返しコールする必要がなくなるので便利です。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>
<constant>INPUT_GET</constant>、<constant>INPUT_POST</constant>、
<constant>INPUT_COOKIE</constant>、<constant>INPUT_SERVER</constant> あるいは
<constant>INPUT_ENV</constant> のいずれか。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
引数を定義する配列。配列のキーとして使用できるのは
変数名を <type>string</type> で表したものです。
対応する値に使用できるのは、<link
linkend="filter.filters">フィルタの型</link>か配列 (フィルタ・フラグ・オプションを指定したもの) です。
配列の値として配列を使用する場合に使用できるキーは、
<literal>filter</literal> (<link linkend="filter.filters">フィルタの型</link>)、
<literal>flags</literal> (フィルタに適用するフラグ)
および <literal>options</literal> (フィルタに適用するオプション)
です。理解を深めるために、以下の例を参照ください。
</para>
<para>
このパラメータには、<link
linkend="filter.constants">フィルタ定数</link> を表す整数値を指定することもできます。
こうすると、入力配列のすべての値がそのフィルタで処理されます。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>add_empty</parameter></term>
<listitem>
<para>
存在しないキーは &null; として戻り値に追加します。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
成功した場合は要求された変数の値を含む配列。
<constant>FILTER_NULL_ON_FAILURE</constant> フラグが指定されない場合、
かつ <parameter>type</parameter> で指定された入力値の配列が得られなかった場合は、
この関数は &null; を返します。
<parameter>type</parameter> で指定された入力値の配列が得られなかった場合、
かつ <constant>FILTER_NULL_ON_FAILURE</constant> フラグが指定されていた場合は、
この関数は &false; を返します。その他の理由で失敗した場合でも &false; を返します。
</para>
<para>
フィルタが失敗した場合、配列の値は &false; になります。
変数が設定されていない場合は、&null; になります。
フラグ <constant>FILTER_NULL_ON_FAILURE</constant>
が指定されている場合は、変数が設定されていないときに &false;、
フィルタリングに失敗した場合に &null; となります。
<parameter>add_empty</parameter> パラメータが &false; の場合、
配列の要素は追加されません。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>filter_input_array</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
/* データは、実際には POST リクエストでやってきます
$_POST = array(
'product_id' => 'libgd<script>',
'component' => array('10'),
'version' => '2.0.33',
'testarray' => array('2', '23', '10', '12'),
'testscalar' => '2',
);
*/
$args = array(
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => array('filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_ARRAY,
'options' => array('min_range' => 1, 'max_range' => 10)
),
'version' => FILTER_SANITIZE_ENCODED,
'doesnotexist' => FILTER_VALIDATE_INT,
'testscalar' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
),
'testarray' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_ARRAY,
)
);
$myinputs = filter_input_array(INPUT_POST, $args);
var_dump($myinputs);
echo "\n";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(6) {
["product_id"]=>
string(17) "libgd%3Cscript%3E"
["component"]=>
array(1) {
[0]=>
int(10)
}
["version"]=>
string(6) "2.0.33"
["doesnotexist"]=>
NULL
["testscalar"]=>
int(2)
["testarray"]=>
array(4) {
[0]=>
int(2)
[1]=>
int(23)
[2]=>
int(10)
[3]=>
int(12)
}
}
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
<constant>INPUT_SERVER</constant> 配列には、
キー <literal>REQUEST_TIME</literal> が存在しません。
あとで <varname>$_SERVER</varname> に追加されるからです。
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>filter_input</function></member>
<member><function>filter_var_array</function></member>
<member><xref linkend="filter.filters"/></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
-->