魔扣论坛

魔扣源码论坛业务
查看: 800|回复: 6

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

[复制链接]

该用户从未签到

8

主题

0

回帖

2

积分

魔扣新手

Rank: 1

魔扣币
2
贡献
2
威望
0
发表于 2016-12-31 15:35:24 | 显示全部楼层 |阅读模式
魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  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  搜寻深度,默认搜寻全部
  */
  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
<?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);
?>

该用户从未签到

2

主题

234

回帖

470

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
234
贡献
234
威望
0
发表于 2017-2-13 22:06:14 来自手机 | 显示全部楼层
淡定,淡定,淡定……看我轻轻的来,悄悄的走,只带走魔扣源码论坛分享的精品源码,不留下我帅气的文字

该用户从未签到

4

主题

245

回帖

494

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
245
贡献
245
威望
0
发表于 2017-5-5 10:30:19 | 显示全部楼层
温暖在你心里,只是你自己还没有发现它。',

该用户从未签到

0

主题

236

回帖

472

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
236
贡献
236
威望
0
发表于 2017-9-15 09:54:06 来自手机 | 显示全部楼层
多谢分享,顶一下',

该用户从未签到

1

主题

260

回帖

521

积分

高级魔扣

Rank: 4

魔扣币
260
贡献
260
威望
0
发表于 2018-2-15 14:59:48 | 显示全部楼层
当一个人最看重的东西是面子,那他为此失去的一定很多。',

该用户从未签到

2

主题

255

回帖

512

积分

高级魔扣

Rank: 4

魔扣币
255
贡献
255
威望
0
发表于 2018-8-31 08:54:04 | 显示全部楼层
一句祝福,浓缩着真挚的情感,犹如芳香四溢的美酒,恰似柔润馨香的春风…一份感动,一份甜美,一份陶醉,一份深情,浓郁成这千丝万缕的情愫,荡起心海涟漪重重…谢谢你,亲爱的朋友。将这浓郁的情感嵌入荧屏,捧出一颗心的真诚祝福。魔扣源码论坛愿快乐与幸福永远相伴你的每一天

该用户从未签到

2

主题

253

回帖

508

积分

高级魔扣

Rank: 4

魔扣币
253
贡献
253
威望
0
发表于 2019-2-16 12:49:03 来自手机 | 显示全部楼层
我的祝福是一只蝴蝶,随风儿飘到你的枕边,做个好梦,把明天的承诺兑现!如果你有烦恼,我就陪你一个夜晚;只要你开心,我随时陪在你的身边!闭上眼睛,送你一份甘甜,张开双臂,拥你一份浪漫!魔扣源码论坛祝福亲爱的朋友:永远开心!永远灿烂!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 联系我们
  • 新浪微博 :
  • 在线客服 :魔扣科技 
  • 源码QQ群 :魔扣源码论坛官方总群
  • 联系邮箱 :charlin#morko.net
  • 微信扫一扫
快速回复 返回顶部 返回列表