首页 > 编程笔记 > PHP笔记 阅读:10

PHP scandir()和readdir():读取目录(附带实例)

读取目录是指读取目录中的文件列表。PHP 提供了两种方式读取目录:

PHP scandir()获取目录下所有文件名

scandir() 函数用于返回指定目录中的文件和目录。该函数执行成功返回包含所有文件名的数组,执行失败返回 false。

scandir() 函数的语法格式如下:
bool scandir( string $directory[, int $order, resource $context ] )
$directory 表示要查看的目录;$order 规定排序方式,默认是 0,表示按字母升序排列。

查看当前目录下的所有内容的示例代码如下:
$dir_info = scandir('./');
foreach ($dir_info as $file) {
    echo $file . '<br>';
}
在上述示例代码中,“./”表示当前目录。运行上述代码后,会输出当前目录下的所有内容,并按文件名首字母升序排列。

PHP readdir()函数读取目录

opendir() 函数用于打开一个目录句柄。该函数执行成功返回目录的句柄,执行失败返回 false。其语法格式如下:
resource opendir( string $path[, resource $context ] )
$path 表示要打开的目录路径。

readdir() 函数从目录句柄中读取条目。该函数执行成功返回文件名称,执行失败返回 false。其语法格式如下:
resource readdir( [ resource $dir_handle ] )
$dir_handle 表示已经打开的目录句柄。

演示使用 opendir() 函数和 readdir() 函数读取目录中的内容的示例代码如下:
$resource = opendir('./');
$file = '';
while ($file = readdir($resource)) {
    echo $file . '<br>';
}
closedir($resource);
在上述示例代码中,使用 opendir() 函数打开当前目录句柄,使用 readdir() 函数获取目录中的文件。需要注意的是,打开一个目录句柄后,使用完毕时,建议使用 closedir() 函数关闭目录句柄。

目录的操作通常具有不确定性。例如,程序不知道要操作的目录是否存在,以及要操作的是不是目录。为了保证代码的严谨性,减少代码执行过程中出现的错误,通常会使用系统函数来判断路径的有效性。

目录操作常用的判断函数如下表所示:

表:目录操作常用的判断函数
函数 功能
is_dir(string $filename) 判断给定的名称是不是目录,是目录会返回 true,不是目录则返回 false
getcwd() 若成功会返回当前目录,失败则返回 false
rewinddir(resource $dir_handle) 将打开的目录句柄指针重置到目录的开头
chdir(string $directory) 改变当前的目录,若成功会返回 true,失败则返回 false

相关文章