使用函数介绍
1、opendir() 函数打开目录。成功则返回目录句柄资源。失败则返回 FALSE。
2、readdir() 函数返回目录中下一个文件的文件名。若成功则返回条目名称(文件名),失败则返回 FALSE。
实例
<?php
if(is_dir($dir)){
if($fr = opendir($dir)){
while(($file = readdir($fr))!== false){
echo '文件名:'.$file . '<br>';
}
}
}
结果:
文件名:form.html
文件名:upload.php
脚本
<?php
/**
* 获取指定路径下所有的文件信息
* @param string $dir 有效路径
* @param integer $level 表示当前文件所在层级
* @return array 所有元素的二维数组,无效路径返回false
*/
function getAll($dir,$level=0){
if(!is_dir($dir)){
return false;
}
static $out = [];
if($fr = opendir($dir)){
while(($file = readdir($fr)) !== false){
if($file == '.' || $file == '..') continue;
$file = iconv('gbk','utf-8',$file);
$tmp_dir = $dir.'/'.$file;
if(is_dir($tmp_dir)){
$out[] = [
'filename' => $file,
'directory'=> $dir,
'is_dir' => 1,
'level' => $level
];
//递归
getAll($tmp_dir,$level + 1);
} else {
$out[] = [
'filename' => $file,
'directory'=> $dir,
'is_dir' => 2,
'level' => $level
];
}
}
return $out;
}
}
// is_dir 判断是否为文件或目录,值为 1 是目录,值为 2 是文件。
// 调用方法
$dir = './upload';
$files = getAll($dir);
echo '<pre>';
print_r($files);
结果: