Heim  >  Artikel  >  php教程  >  PHP遍历文件夹与文件类及处理类用法实例

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

WBOY
WBOYOriginal
2016-06-06 20:19:021188Durchsuche

这篇文章主要介绍了PHP遍历文件夹与文件类及处理类用法实例,包括了文件及文件夹的遍历以及清除utf8的bom头方法,非常实用,需要的朋友可以参考下

本文实例讲述了PHP遍历文件夹与文件类及处理类用法,非常具有实用价值。分享给大家供大家参考。具体方法如下:

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 || $depthmaxdepth){ // 判断深度 $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; } } } ?>

去除utf8 bom头Demo遍历文件示例:

process($folder); print_r($obj->files); ?>

希望本文所述对大家PHP程序设计的学习有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn