当需要获取一个目录下的所有文件名时,我们可以使用 PHP 的 opendir() 函数。以下是完整攻略:
当需要获取一个目录下的所有文件名时,我们可以使用 PHP 的 opendir()
函数。以下是完整攻略:
函数原型
resource opendir ( string $path [, resource $context ] )
path
: 需要打开的目录路径。context
: 一个包含stream contexts
配置的环境变量数据流。
该函数返回一个目录句柄选项,一个可供 readdir()
和 closedir()
使用的资源类型的值。
代码实例
以下示例展示如何使用 opendir()
和 readdir()
遍历一个目录中的所有文件:
$dir = "/path/to/dir";
$dh = opendir($dir);
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != "..") {
echo "filename : " . $file . "<br>";
}
}
closedir($dh);
注释:
opendir()
函数打开指定的目录并返回一个目录句柄作为资源类型的值。while()
循环使用readdir()
读取当前打开目录的每个文件,检查文件名是否是.
或..
。如果不是,则使用echo()
语句打印输出。echo
的 作用是输出内容到当前文件。closedir()
函数关闭由opendir()
函数打开的指定目录。
更进一步地,我们可以使用 is_dir()
等函数判断文件类型,使用 basename()
获取不带路径的文件名,以及对目录进行递归遍历。以下是第二个示例代码:
function dir_tree($dir){
$dh = opendir($dir);
while($file = readdir($dh)){
if($file !== '.' && $file !== '..'){
$fullpath = $dir.'/'.$file;
if(is_dir($fullpath)){
echo 'dir:', $fullpath, "<br />";
dir_tree($fullpath);
}
else{
echo 'file:', $fullpath, "<br />";
}
}
}
closedir($dh);
}
$dir = 'path/to/dir/';
dir_tree($dir);
注释:
is_dir()
函数用于判断一个文件是否为目录。basename()
函数可以获取不带路径的文件名。dir_tree()
函数进行递归遍历,首先打开路径指定目录,遍历目录中的每个文件,判断是否是目录,是的话递归遍历该目录,否则输出该文件的完整路径。
以上是使用 opendir()
函数列出目录下所有文件的实例代码的完整攻略,如果您对此还有疑问,欢迎提出。
沃梦达教程
本文标题为:php opendir()列出目录下所有文件的实例代码


基础教程推荐
猜你喜欢
- PHP基于反射机制实现自动依赖注入的方法详解 2022-10-02
- PHP laravel使用自定义邮件类实现发送邮件 2023-07-03
- PHP采用get获取url汉字出现乱码的解决方法 2024-03-28
- php+mysql开发的最简单在线题库(在线做题系统)完整案例 2023-01-04
- Laravel修改验证提示信息为中文的示例 2023-03-08
- php生成短网址/短链接原理和用法实例分析 2023-04-20
- php去除deprecated的实例方法 2022-09-02
- Laravel 解决composer相关操作提示php相关异常的问题 2023-03-08
- PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br 2024-03-28
- php如何获取当前日期和星期 2024-12-06