博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 遍历文件夹及文件类及处理类
阅读量:6819 次
发布时间:2019-06-26

本文共 2450 字,大约阅读时间需要 8 分钟。

FindFile.class.php
用于遍历目录文件
0){ $this->maxdepth = $maxdepth; }else{ $this->maxdepth = 0; } $this->files = array(); $this->traversing($spath); // 遍历 } /* 遍历文件及文件夹 * @param String $spath 文件夹路径 * @param int $depth 当前文件夹深度 */ private function traversing($spath, $depth=1){ if($handle = opendir($spath)){ while(($file=readdir($handle))!==false){ if($file!='.' && $file!='..'){ $curfile = $spath.'/'.$file; if(is_dir($curfile)){ // dir if($this->maxdepth==0 || $depth<$this->maxdepth){ // 判断深度 $this->traversing($curfile, $depth+1); } }else{ // file $this->handle($curfile); } } } closedir($handle); } } /** 处理文件方法 * @param String $file 文件路径 */ protected function handle($file){ array_push($this->files, $file); }}?>
UnsetBom.class.php
用于清除utf8+bom文件的bom,即头三个字节 0xEF 0xBB 0xBF,继承FindFile类
filetype = $filetype; } } /** 重写FindFile handle方法 * @param String $file 文件路径 */ protected function handle($file){ if($this->check_ext($file) && $this->check_utf8bom($file)){ // utf8+bom $this->clear_utf8bom($file); // clear array_push($this->files, $file); // save log } } /** 检查文件是否utf8+bom * @param String $file 文件路径 * @return boolean */ private function check_utf8bom($file){ $content = file_get_contents($file); return ord(substr($content,0,1))===0xEF && ord(substr($content,1,1))===0xBB && ord(substr($content,2,1))===0xBF; } /** 清除utf8+bom * @param String $file 文件路径 */ private function clear_utf8bom($file){ $content = file_get_contents($file); file_put_contents($file, substr($content,3), true); // 去掉头三个字节 } /** 检查文件类型 * @param String $file 文件路径 * @return boolean */ private function check_ext($file){ $file_ext = strtolower(array_pop(explode('.',basename($file)))); if(in_array($file_ext, $this->filetype)){ return true; }else{ return false; } }}?>
Demo unset utf8 bom
process($folder);print_r($obj->files);?>

转载于:https://www.cnblogs.com/fdipzone/archive/2013/03/22/3715131.html

你可能感兴趣的文章
Spring-Boot-操作-Redis,三种方案全解析!
查看>>
ubuntu 15.10下apache+php+mysql安装
查看>>
RHCE 学习笔记(28) Target Service
查看>>
2016年4月6日作业
查看>>
RxJava 学习笔记<十> 译 Leaving the monad
查看>>
Mariadb galera cluster 安装配置
查看>>
川模型 一款新的测试模型的提出与研究
查看>>
如何快速开发网站?
查看>>
cloudera search1.0.0环境搭建(1):搭建solrcloud
查看>>
SpringBoot整合Quartz(升级版)
查看>>
导入sql语句 汉字编码不一样报异常
查看>>
html文本自动换行
查看>>
Exchange常见问题大全
查看>>
安装Sublime Text 2插件的方法
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Kubernetes NFS存储服务的误报
查看>>
meta设置
查看>>
sed 行编辑器知识汇总
查看>>
nginx升级OpenSSL
查看>>