函数opendir()、closedir()、rewinddir()、dir()和readdir()
函数opendir()用于打开所浏览的目录。这类似于用函数fopen()打开所读取的文件。只是传递给此函数的参数不是文件名称,而是一个目录名称:
$dir=opendir($current_dir);
该函数将返回一个目录句柄,这一点与函数fopen()返回文件句柄是非常类似的。在目录打开后,可以通过调用函数readdir($dir)从目录中读取文件。当该目录中没有可读的文件时,此函数将返回false。请注意,当此函数读取一个名为“0”的文件时,也将返回false——为了确保这一点,可以通过测试来确定返回值是否为false。
while(false!==($file=readdir($dir)))
当完成从目录中读取文件的步骤后,可以通过调用函数closedir($dir)关闭该目录,这也类似于调用函数fclose()来关闭文件。
rewinddir()函数重置由 opendir() 创建的目录句柄,将所读的文件恢复到开始的目录。
除了这些函数外,还可以使用PHP提供的dir类,该类具有handle和path属性,以及read()、close()和rewind()方法,它们与以上所介绍的非类函数有着相同的作用。
dir() 函数返回 Directory 类的实例。该函数用于读取一个目录,包含如下:
给定的要打开的目录 dir() 的 handle 和 path 两个属性是可用的 handle 和 path 属性有三个方法:read()、rewind() 和 close()
例子:
<?php
header("Content-type: text/html; charset=gbk");
$current_dir = "d:";
$dir=opendir($current_dir);
while(false!==($file=readdir($dir))){
echo $file."<br>";
}
rewinddir();
while(false!==($file=readdir($dir))){
echo $file."<br>";
}
closedir($dir);
//使用dir类
$d = dir($current_dir);
echo "Handle: " . $d->handle . "<br>";
echo "Path: " . $d->path . "<br>";
while (($file = $d->read()) !== false){
echo "filename: " . $file . "<br>";
}
rewinddir();
while (($file = $d->read()) !== false){
echo "filename: " . $file . "<br>";
}
$d->close();