当需要获取一个目录下的所有文件名时,我们可以使用 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()列出目录下所有文件的实例代码 - Python技术站