一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP遍歷文件夾與文件類及處理類用法實例

PHP遍歷文件夾與文件類及處理類用法實例

2020-07-29 15:34shichen2014 PHP教程

這篇文章主要介紹了PHP遍歷文件夾與文件類及處理類用法實例,包括了文件及文件夾的遍歷以及清除utf8的bom頭方法,非常實用,需要的朋友可以參考下

本文實例講述了PHP遍歷文件夾與文件類及處理類用法,非常具有實用價值。分享給大家供大家參考。具體方法如下:

FindFile.class.php類文件用于遍歷目錄文件,具體代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?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類,具體代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?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遍歷文件示例:

?
1
2
3
4
5
6
7
8
9
10
11
<?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程序設計的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 全黄h全肉细节修仙玄幻文 全彩调教侵犯h本子全彩妖气he | 俄罗斯性高清完整版 | 国产a一级 | 青青成人在线 | 农村老少伦小说 | 午夜私人影院在线观看 | 国产在线观看精品 | 亚洲视频日韩 | 免费日本在线视频 | 6080窝窝理论 | 亚洲国产在 | 果冻传媒在线视频播放观看 | 国产成人精品一区二三区在线观看 | jizz女16处| 午夜影院在线免费观看 | 色综合综合色 | 色老板在线免费观看 | 果冻传媒i91media免费 | 美女张开大腿让男人桶 | 免费观看欧美性一级 | 狠狠色综合久久婷婷色天使 | 教室里老师好紧h | 欧美同性gayvidoes| 桃乃木香在线 | 成人国产精品 | julia ann全部在线hd | 小SAO货叫大声点妓女 | 男人综合网 | 欧美在线观看一区二区三 | 99久久免费国产精品热 | 国产男女性特黄录像 | nxgx国产| 免费观看欧美成人h | 久草青青在线 | 天天性综合 | 日韩一区二区三区四区五区 | 亚洲理论视频 | eee在线播放成人免费 | 日本中文字幕黑人借宿影片 | 成人观看免费观看视频 | 天堂资源8中文最新版 |