[TOC]
## 文件处理类库
### 1、读取目录及文件
~~~
/**
* 读取文件目录信息(缺陷:无法读取中文文件夹)
* @param str $dir 目录的路径
* @param array $file_type 按条件筛选
* @param int $is_sub_file 是否显示下一级目录,1或true读取子目录,0或false不读取子目录
* @return array 返回目录文件路径
*/
FileHelper::getFileList($dir,$file_type = array(),$is_sub_file = TRUE)
FileHelper::getFileList('./test',$file_type = array(),$is_sub_file = TRUE)
FileHelper::getFileList('./test',array('txt','png'),FALSE)
~~~
文件路径
![](https://box.kancloud.cn/564efaa7a3c7452394bc29db2f635630_744x221.png);
打印结果一、
![](https://box.kancloud.cn/fdc87c244933539409542b92259ebaf3_255x301.png);
打印结果二 、
![](https://box.kancloud.cn/09a59cdeaa7ac4bb0ca20f1a94cfc39c_205x131.png);
### 2、读取目录文件
~~~
/**
* 读取文件信息 支持5.5以上版本(缺陷:无法读取中文文件夹)
* @param str $dir 目录的路径
* @param array $file_type 按条件筛选
* @param int $is_sub_file 是否显示下一级目录,1或true读取子目录,0或false不读取子目录
* @return array 返回一维文件路径
*/
FileHelper::getFiles($dir,$file_type = array(),$is_sub_file = TRUE)
FileHelper::getFiles('./test')
FileHelper::getFiles('./test',array('png'))
~~~
文件路径
![](https://box.kancloud.cn/564efaa7a3c7452394bc29db2f635630_744x221.png);
打印结果一、
![](https://box.kancloud.cn/a914e700d927ecb4b49e762bc8a722fd_242x217.png);
打印结果二、
![](https://box.kancloud.cn/cc20477895596c290430c779800ae554_240x129.png);
### 3、读取目录
~~~
/**
* 获取目录
* @param str $dir 文件夹路径
* @return array 返回目录
*/
FileHelper::getFolderList($dir)
FileHelper::getFolderList('./test')
~~~
文件路径
![](https://box.kancloud.cn/d4eeb8229328626e605d147d7c7fbbe9_745x218.png);
打印结果、
![](https://box.kancloud.cn/2ad688884d3a8d9f6042e58539f27a5b_149x179.png);
### 4、通过月份筛选读取目录
~~~
/**
* 获取目录 文件夹下只允许有一层文件夹
* @param str $dir 文件夹路径
* @param str $date 格式必须是:2016-10
* @return array 返回目录
*/
FileHelper::getMonthFolder($dir,$date ='2016-01')
FileHelper::getMonthFolder('./testdate','2016-05')
~~~
文件路径
![](https://box.kancloud.cn/84d1550f0c8639fdcd106e90353100ee_626x197.png);
打印结果、
![](https://box.kancloud.cn/dfc3410bb741b7b5c4bebf4cc0f16518_175x98.png);
### 5、读取月份目录
~~~
/**
* 匹配该目录获取不重复的年月例如2016-10-03返回2016-10(只适用一层文件夹)
* @param str $fileurl 文件全路径
* @param str $fileurl 是否显示子目录
* @return array 返回一维文件夹名字不重复的2016-10
*/
FileHelper::getDirName($dir)
FileHelper::getDirName('./testdate')
~~~
文件路径
![](https://box.kancloud.cn/84d1550f0c8639fdcd106e90353100ee_626x197.png);
打印结果、
![](https://box.kancloud.cn/eb7926196b1daa392b4e7d914bbb516f_148x133.png)
### 6、清空目录
~~~
/**
* 清空目录
* @param str $dir 目录
* @param str $type 是否删除本文件夹
*/
FileHelper::clear($dir,$type = FALSE)
FileHelper::clear('./testdate')
FileHelper::clear('./testdate',TRUE)
~~~
文件路径
![](https://box.kancloud.cn/84d1550f0c8639fdcd106e90353100ee_626x197.png);
打印结果一、bool(true);
文件夹显示结果一、
![](https://box.kancloud.cn/ac16726b2004564dfc6ed67e4f3fb5c1_521x131.png);
打印结果二、bool(true);
文件夹testdate自身文件夹也删除成功;
注意:当路径不存在返回bool(false);
### 7、多维数组转一维数组
~~~
/**
* 遍历多维数组,结果返回一维数组。(数据多时用Array_push()效率高)
* @param array $array
* @return array
*/
FileHelper::array_multi2array($array)
$a = array(1,array(3,array(5,6)),7);
FileHelper::array_multi2array($a);
~~~
打印结果、
![](https://box.kancloud.cn/3622eb9c4985d03f70b87c299358d849_77x188.png);
### 8、获取文件信息
~~~
/**
* 获取文件信息
* @param str $fileurl 文件全路径
* @return array 返回一维文件信息
*/
FileHelper::getFilesInfo($fileurl)
FileHelper::getFilesInfo('./test/4-4.png')
~~~
文件路径
![](https://box.kancloud.cn/d4eeb8229328626e605d147d7c7fbbe9_745x218.png);
打印结果
![](https://box.kancloud.cn/5071541c6fa960a498f49fb680d3a991_194x184.png);
注意:获取文件信息失败则是文件路径问题
### 9、获取微信日志文件
~~~
/**
* 按条件读取目录文件
* @param str $dir 文件夹路径
* @param str $str 匹配的字符串
* @param array $type 文件类型
* @param str $start 开始时间格式必须是2016-01-22
* @param str $type 结束时间格式必须是2017-01-22
* @return array 返回目录文件
*/
FileHelper::searchFile($dir,$str='wx',$type=array('log'),$start='',$end='')
FileHelper::searchFile('./test',$str='wx',$type=array('log'),$start='2016-06-20',$end='2016-09-12')
~~~
文件路径
![](https://box.kancloud.cn/bcbbe1470ce40984698a2782f51b2b99_810x502.png);
打印结果、
![](https://box.kancloud.cn/34dc9d792f46682268c64d7b26f68bde_257x335.png);
注意:微信日志格式必须是16-06-03_wx.log或16_06_03_wx.log;
### 10、路径转换成服务器的物理路径
~~~
/**
* 路径转换成服务器物理路径
* @param $filepath
* @return \CURLFile|string
*/
FileHelper::getServerRealPath($filepath)
~~~