File: readdir.xml

package info (click to toggle)
php-doc 20081024-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 57,752 kB
  • ctags: 3,858
  • sloc: xml: 686,554; php: 19,446; perl: 610; cpp: 500; makefile: 336; sh: 114; awk: 28
file content (145 lines) | stat: -rw-r--r-- 3,770 bytes parent folder | download
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
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.12 $ -->
<!-- splitted from ./en/functions/dir.xml, last change in rev 1.2 -->
<refentry xml:id="function.readdir" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>readdir</refname>
  <refpurpose>Read entry from directory handle</refpurpose>
 </refnamediv>

 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>string</type><methodname>readdir</methodname>
   <methodparam choice="opt"><type>resource</type><parameter>dir_handle</parameter></methodparam>
  </methodsynopsis>
  <para>
   Returns the filename of the next file from the directory. The
   filenames are returned in the order in which they are stored by
   the filesystem.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>dir_handle</parameter></term>
     <listitem>
      <para>
       The directory handle <type>resource</type> previously opened
       with <function>opendir</function>. If the directory handle is 
       not specified, the last link opened by <function>opendir</function> 
       is assumed.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns the filename on success, or &false; on failure.
  </para> 
  &return.falseproblem;
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>List all files in a directory</title>
    <para>
     Please note the fashion in which <function>readdir</function>'s
     return value is checked in the examples below. We are explicitly
     testing whether the return value is identical to (equal to and of
     the same type as--see <link
     linkend="language.operators.comparison">Comparison
     Operators</link> for more information) &false; since otherwise,
     any directory entry whose name evaluates to &false; will stop the
     loop (e.g. a directory named "0").
    </para>
    <programlisting role="php">
<![CDATA[
<?php
// Note that !== did not exist until 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* This is the correct way to loop over the directory. */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* This is the WRONG way to loop over the directory. */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?>
]]>
    </programlisting>
   </example>
  </para>
  <para>
   <example>
    <title>
     List all files in the current directory and strip out <literal>.</literal>
     and <literal>..</literal>
    </title>
    <programlisting role="php">
<![CDATA[
<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "$file\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>
   </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:"../../../../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
-->