forked from php/doc-ja
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreaddir.xml
167 lines (157 loc) · 4.78 KB
/
readdir.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- splitted from ./ja/functions/dir.xml, last change in rev 1.1 -->
<!-- EN-Revision: b0b19b66183b28cebc1ffbcf1e2b8763f9d9c7b3 Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa -->
<refentry xml:id="function.readdir" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>readdir</refname>
<refpurpose>ディレクトリハンドルからエントリを読み込む</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>readdir</methodname>
<methodparam choice="opt"><type class="union"><type>resource</type><type>null</type></type><parameter>dir_handle</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
ディレクトリから次のエントリの名前を返します。
エントリ名はファイルシステム上に格納されている順番で返されます。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>dir_handle</parameter></term>
<listitem>
<para>
<function>opendir</function> が事前にオープンした
ディレクトリハンドルを示す <type>resource</type>。
ディレクトリハンドルを指定しなかった場合は、
<function>opendir</function> が最後にオープンしたものを使用します。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
成功した場合にエントリ名、&return.falseforfailure;。
</para>
&return.falseproblem;
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>dir_handle</parameter> は、nullable になりました。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>ディレクトリ内の全てのエントリのリストを得る</title>
<para>
以下の例で、<function>readdir</function> の戻り値をどのように調べているかに
注目してください。戻り値が &false; と一致することを、明示的に
(値が等しく、かつ型も等しい - 詳細は <link linkend="language.operators.comparison">
比較演算子</link> を参照ください)調べています。なぜなら、そうしないと
&false; と評価されてしまうディレクトリエントリ
(例: "0" という名前のディレクトリ)があった場合にループが
とまってしまうからです。
</para>
<programlisting role="php">
<![CDATA[
<?php
if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Entries:\n";
/* ディレクトリをループする際の正しい方法です */
while (false !== ($entry = readdir($handle))) {
echo "$entry\n";
}
/* ディレクトリをループする際の「間違った」方法です */
while ($entry = readdir($handle)) {
echo "$entry\n";
}
closedir($handle);
}
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>
カレントディレクトリの全てのエントリを一覧する。ただし <literal>.</literal>
および <literal>..</literal> は取り除く
</title>
<programlisting role="php">
<![CDATA[
<?php
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "$entry\n";
}
}
closedir($handle);
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>is_dir</function></member>
<member><function>glob</function></member>
<member><function>opendir</function></member>
<member><function>scandir</function></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
-->