在PHP中,目录类使用Directory来表示。Directory的实例是通过调用 dir() 函数创建的,而不是 new 操作符。本文介绍Directory的使用。
一、使用 dir 函数构造Directory类,函数语法如下:
Directory dir ( string $directory [, resource $context ] )
函数参数说明:
参数 | 描述 |
---|---|
directory | 必需。规定要打开的目录。 |
context | 可选。 |
dir() 函数以面向对象的方式访问目录,打开 directory 参数指定的目录。构建成功的话,返回一个 Directory 类实例, 参数错误的情况下返回 null , 其它错误情况返回 false 。
示例:
<?php // 构建Directory类对象 $dir = dir('E:\soft');
二、使用 read 函数从目录实例中读取目录信息,函数语法如下:
string Directory::read ([ resource $dir_handle ] )
read() 函数从目录实例中读取内容条目。 该函数功能和 readdir() 函数一样, 只是 dir_handle 默认为 $this 变量。
注意,此处需要明确地检测返回值是否全等于(值和类型都相同)FALSE,否则任何目录项的名称求值为 FALSE 的都会导致循环停止(例如一个目录名为"0")。
示例:
<?php // 构建Directory类对象 $dir = dir('E:\soft'); // 输出目录中的条目 while (false !== ($file = $dir->read())) { if ($file != '.' && $file != '..') { echo $file . '<br>'; } }
三、使用 close 函数释放目录实例,函数语法如下:
void Directory::close ([ resource $dir_handle ] )
close() 函数用来释放dir创建的目录实例。该函数功能和 closedir() 函数一样, 只是 dir_handle 默认为 $this 变量。
示例:
<?php // 构建Directory类对象 $dir = dir('E:\soft'); // 输出目录中的条目 while (false !== ($file = $dir->read())) { if ($file != '.' && $file != '..') { echo $file . '<br>'; } } // 释放目录句柄 $dir->close();
四、使用 rewind 函数重置目录实例,函数语法如下:
void Directory::rewind ([ resource $dir_handle ] )
rewind() 函数用来重置dir创建的目录实例,将 dir_handle 指定的目录流重置到目录的开头。该函数功能和 rewinddir() 函数一样, 只是 dir_handle 默认为 $this 变量。
示例:
<?php // 构建Directory类对象 $dir = dir('E:\soft'); // 输出目录中的条目 while (false !== ($file = $dir->read())) { if ($file != '.' && $file != '..') { echo $file . '<br>'; } } // 重置目录句柄 $dir->rewind(); // 释放目录句柄 $dir->close();