1.php 获取文件目录所有文件 如下实例代码 (这个代码 是为 bootstrap-treeview.js 树 结构 专属制作的 解决了中文乱码问题 ):
//获取目录所有文件
/*
* @param readfileAll() //读取所有文件及文件夹
* @param iconv // 字符转码
* @param $dirName // 基于 ./Public/Uploads/ 的文件夹
* @param 2017 11/20/11:03
*/
function readfileAll($dirName){
$array=array();
$arrays=array();
$dir=$dirName;
if(is_dir(iconv('utf-8','gb2312',$dir))==true){
if($handle=opendir(iconv('utf-8','gb2312',$dir))){//打开文件内容
while(false!==($files=readdir($handle))){//读取文件内容
$files=iconv('gb2312','utf-8',$files);
if($files!="."&&$files!=".."){
$files=iconv('utf-8','utf-8',$files);//字符转义
$dir=iconv('utf-8','utf-8',$dir);
$new_dir=$dir."/".$files;
if(is_dir(iconv('utf-8','gb2312',$dir."/".$files))==false)//is_file 是判断是否是目录还是文件 是目录就返回否 不是的话返回 true
{
$array['text']= '<span class="glyphicon glyphicon-file" style="margin-right: 10px;color: #bababa;"></span> ' .$files;
$array['nodes']="";
$array['tags']=['<button class="btn btn-danger btn-xs" data-file="'.explode('./Public/Uploads/',$new_dir)[1].'" id="file_delete">删除</button> <button class="btn btn-danger btn-xs" data-file="'.explode('./Public/Uploads/',$new_dir)[1].'" id="file_see">预览文件</button>'];
array_push($arrays,$array);
}
else
{
$array['text']= '<span class="glyphicon glyphicon-folder-close" style="margin-right: 10px;color: #a6a6a6;"></span> ' .$files;
$array['tags']=['<button class="btn btn-danger btn-xs" data-file="'.explode('./Public/Uploads/',$new_dir)[1].'" id="file_delete">删除</button> <button class="btn btn-danger btn-xs" data-file="'.explode('./Public/Uploads/',$new_dir)[1].'" id="file_edit">编辑</button> <button class="btn btn-danger btn-xs file_file" data-file="'.explode('./Public/Uploads/',$new_dir)[1].'" id="file_file">添加目录</button> <button class="btn btn-danger btn-xs" data-file="'.explode('./Public/Uploads/',$new_dir)[1].'" id="file_chuan">上传文件</button>'];
$array['nodes']= readfileAll($new_dir);//递归调用
array_push($arrays,$array);
}
}
}
closeDir($handle);
}
}else{
if(is_file(iconv('utf-8','gb2312',$dir))==false){
array_push($arrays,'没有找到目录');
array_push($arrays,'fail');
}
}
return $arrays;//返回二维数组
}