• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于PHP 遍历文件夹及文件类及处理类

php 搞代码 3年前 (2022-01-22) 22次浏览 已收录 0个评论

FindFile.class.php
用于遍历目录文件

<?php/** 遍历文件夹及文件类*   Date:<span>!本文来源gaodai#ma#com搞*!代#%^码网5</span><pre>搞gaodaima代码

2013-03-21* Author: fdipzone* Ver: 1.0*/class FindFile{ public $files = array(); // 存储遍历的文件 protected $maxdepth; // 搜寻深度,0表示没有限制 /* 遍历文件及文件夹 * @param String $spath 文件夹路径 * @param int $maxdepth 搜寻深度,默认搜寻全部 */ public function process($spath, $maxdepth=0){ if(isset($maxdepth) && is_numeric($maxdepth) && $maxdepth>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类

<?php/** 遍历所有文件,清除utf8+bom 0xEF 0xBB 0xBF*   Date:   2013-03-21*   Author: fdipzone*   Ver:    1.0*/class UnsetBom extends FindFile{    private $filetype = array(); // 需要处理的文件类型    // 初始化    public function __construct($filetype=array()){        if($filetype){            $this->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

<?phprequire('FindFile.class.php');require('UnsetBom.class.php');$folder = dirname(__FILE__);$obj = new UnsetBom(array('php','css','js')); // 文件类型$obj->process($folder);print_r($obj->files);?>

本文讲解了关于PHP 遍历文件夹及文件类及处理类 的相关内容,更多相关知识请关注搞代码

相关推荐:

介绍php相关语法技巧

如何通过php 根据url自动生成缩略图

介绍php output_buffering 缓存使用的方法

以上就是关于PHP 遍历文件夹及文件类及处理类的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于PHP 遍历文件夹及文件类及处理类

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址