forked from php/doc-ja
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfilter-var.xml
188 lines (180 loc) · 5.54 KB
/
filter-var.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 18a59d257ac885abb0646b2646fb82b35b90ef56 Maintainer: takagi Status: ready -->
<!-- Generated by xml_proto.php v2.4. Found in /scripts directory of phpdoc. -->
<!-- Credits: mumumu -->
<refentry xml:id="function.filter-var" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>filter_var</refname>
<refpurpose>指定したフィルタでデータをフィルタリングする</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>filter_var</methodname>
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>filter</parameter><initializer><constant>FILTER_DEFAULT</constant></initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>array</type><type>int</type></type><parameter>options</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
フィルタリングする値。値をフィルタリングする前に、
内部的に <link linkend="language.types.string.casting">文字列への変換</link>
が行われることに注意しましょう。
</para>
</listitem>
</varlistentry>
&filter.param.filter;
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
オプションあるいはフラグの論理和の連想配列。
オプションを指定可能なフィルタの場合、この配列の "flags"
フィールドにフラグを指定します。
"callback" フィルタの場合は、<type>callable</type> 型を渡さなければなりません。
コールバックは、フィルタリングする値を引数として受け取り、
処理後の値を返すようにしなければなりません。
</para>
<para>
<programlisting role="php">
<![CDATA[
<?php
// オプションを許可するフィルタは、このような形式となります
$options = array(
'options' => array(
'default' => 3, // フィルタが失敗した場合に返す値
// その他のオプションをここに書きます
'min_range' => 0
),
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);
// フラグのみを許可するフィルタは、それを直接記述します
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
// フラグのみを許可するフィルタは、配列として渡すこともできます
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
array('flags' => FILTER_NULL_ON_FAILURE));
// コールバック検証フィルタ
function foo($value)
{
// 期待する書式: Surname, GivenNames
if (strpos($value, ", ") === false) return false;
list($surname, $givennames) = explode(", ", $value, 2);
$empty = (empty($surname) || empty($givennames));
$notstrings = (!is_string($surname) || !is_string($givennames));
if ($empty || $notstrings) {
return false;
} else {
return $value;
}
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>
]]>
</programlisting>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
フィルタリングされたデータ、あるいは処理に失敗した場合に
&false; を返します。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>filter_var</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
var_dump(filter_var('[email protected]', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(15) "[email protected]"
bool(false)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>配列をフィルタする例</title>
<programlisting role="php">
<![CDATA[
<?php
$emails = [
"invalidemail"
];
var_dump(filter_var($emails, FILTER_VALIDATE_EMAIL, FILTER_REQUIRE_ARRAY));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(3) {
[0]=>
string(15) "[email protected]"
[1]=>
string(18) "[email protected]"
[2]=>
bool(false)
}
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>filter_var_array</function></member>
<member><function>filter_input</function></member>
<member><function>filter_input_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
-->