设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP遍历文件夹与文件类及处理类用法例子

发布时间:2022-07-22 12:52 所属栏目:121 来源:互联网
导读:本文实例讲述了PHP遍历文件夹与文件类及处理类用法,非常具有实用价值。分享给大家供大家参考。具体方法如下: FindFile.class.php类文件用于遍历目录文件,具体代码如下: ?php /** 遍历文件夹及文件类 * Date: 2013-03-21 * Author: fdipzone * Ver: 1.0 *
      本文实例讲述了PHP遍历文件夹与文件类及处理类用法,非常具有实用价值。分享给大家供大家参考。具体方法如下:
 
  FindFile.class.php类文件用于遍历目录文件,具体代码如下:
 
  <?php
 
  /** 遍历文件夹及文件类
 
  * Date: 2013-03-21
 
  * Author: fdipzone
 
  * Ver: 1.0
 
  */
 
  class FindFile{
 
  public $files = array(); // 存储遍历的文件
 
  protected $maxdepth; // 搜寻深度,0表示没有限制
 
  /* 遍历文件及文件夹
 
  * @param String $spath 文件夹路径
 
  * @param int $maxdepth 搜寻深度,默认搜寻全部
 
  */
 
  /* 遍历文件及文件夹
 
  * @param String $spath 文件夹路径
 
  * @param int $depth 当前文件夹深度
 
  */
 
  /** 处理文件方法
 
  * @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;
 
  }
 
  }
 
  }
 
  ?>
 
  去除utf8 bom头Demo遍历文件示例:
 
  <?php
 
  require('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程序设计的学习有所帮助。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读