php读取文件夹内文件及文件夹
来源:互联网 发布:中级软件设计师含金量 编辑:程序博客网 时间:2024/04/29 18:54
<?php
/*
* php读取文件夹内文件及文件夹
* 参数:文件夹路径$dir,格式要求:文件夹名称后必须有“/”
* 返回值:含有文件名称和路径的一维数组
*/
function read($dir) {
$dir_tem = $dir; //用于最终的路径拼接,解决乱码和不显示的bug
$dir = iconv('utf-8', 'gb2312', $dir); //对参数路径进行gb2312转码
$data = scandir("$dir"); //返回指定目录中的文件和目录的数组。
$file_arr = array(); //暂存文件列表
$dir_arr = array(); //暂存文件夹内的文件列表
foreach ($data as $file) {
if (is_dir($dir . $file) && $file != '.' && $file != '..') { //判断是否是文件夹内的文件夹
$file = iconv('gb2312', 'utf-8', $file); //对中文的文件夹进行转码
$dir_arr[] = read($dir . $file . "/"); //递归读取文件夹内的文件
} else {
$file = iconv('gb2312', 'utf-8', $file); //讲文件名转换为utf8编码,防止乱码
$dir = iconv('gb2312', 'utf-8', $dir);
if ($file != '.' && $file != '..') { //过滤
$file_arr[] = $dir_tem . $file;
} //进行路径拼接
}
}
$allFile = array_merge($file_arr, $dir_arr); //拼合数组
return $allFile;
}
function rebuild_array($arr) { //将多维数组变为一维数组
static $tmp = array(); //此处为静态变量,防止递归的时候数据丢失
for ($i = 0; $i < count($arr); $i++) {
if (is_array($arr[$i]))
rebuild_array($arr[$i]); //递归
else
$tmp[] = $arr[$i];
}
return $tmp;
}
function getFile($arr) {
$data = read($arr);
return rebuild_array($data);
}
print_r(getFile("/wamp64/www/"));
/*
* php读取文件夹内文件及文件夹
* 参数:文件夹路径$dir,格式要求:文件夹名称后必须有“/”
* 返回值:含有文件名称和路径的一维数组
*/
function read($dir) {
$dir_tem = $dir; //用于最终的路径拼接,解决乱码和不显示的bug
$dir = iconv('utf-8', 'gb2312', $dir); //对参数路径进行gb2312转码
$data = scandir("$dir"); //返回指定目录中的文件和目录的数组。
$file_arr = array(); //暂存文件列表
$dir_arr = array(); //暂存文件夹内的文件列表
foreach ($data as $file) {
if (is_dir($dir . $file) && $file != '.' && $file != '..') { //判断是否是文件夹内的文件夹
$file = iconv('gb2312', 'utf-8', $file); //对中文的文件夹进行转码
$dir_arr[] = read($dir . $file . "/"); //递归读取文件夹内的文件
} else {
$file = iconv('gb2312', 'utf-8', $file); //讲文件名转换为utf8编码,防止乱码
$dir = iconv('gb2312', 'utf-8', $dir);
if ($file != '.' && $file != '..') { //过滤
$file_arr[] = $dir_tem . $file;
} //进行路径拼接
}
}
$allFile = array_merge($file_arr, $dir_arr); //拼合数组
return $allFile;
}
function rebuild_array($arr) { //将多维数组变为一维数组
static $tmp = array(); //此处为静态变量,防止递归的时候数据丢失
for ($i = 0; $i < count($arr); $i++) {
if (is_array($arr[$i]))
rebuild_array($arr[$i]); //递归
else
$tmp[] = $arr[$i];
}
return $tmp;
}
function getFile($arr) {
$data = read($arr);
return rebuild_array($data);
}
print_r(getFile("/wamp64/www/"));
0 0
- php读取文件夹内文件及文件夹
- wince 遍历文件夹,删除文件夹,及文件夹内文件
- 遍历文件夹内文件
- 黑马程序员 复制文件夹及文件夹内文件的方法
- C++读取文件夹内文件,返回文件路径
- matlab 遍历文件夹内文件
- PHP遍历文件夹内文件和子文件
- 输出文件夹内文件和文件夹名
- R语言中进行文件夹及文件夹内文件操作范例
- mfc CFILE遍历文件夹内文件
- C#监测文件夹内文件操作
- 多层文件夹内文件遍历函数
- [ahk]检测文件夹内文件的更新
- C++下遍历文件夹内文件
- Ubuntu下文件夹内文件排序问题
- Flume实战监听文件夹内文件变化
- 批量生成文件夹内文件的目录
- 文件夹内文件按顺序重命名 matlab
- 中断的系统调用
- MySQL存储结构及SQL分类
- mybatis org.apache.ibatis.binding包源码分析
- letcode-TwoSum
- php中数学函数、日期函数、头部(header)函数以及SERVER超全局变量
- php读取文件夹内文件及文件夹
- 深度学习RCNN系列总结
- 关于eclipse快捷键使用
- Android系统分析之JobScheduler源码分析
- java 注解(annotation)
- spark rdd api
- 史上最全最强SpringMVC详细示例实战教程
- 学会清晰高效地思考
- 基本数据类型包装类“==”判定