博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP算法——文件夹遍历类
阅读量:7232 次
发布时间:2019-06-29

本文共 3599 字,大约阅读时间需要 11 分钟。

闲着没事,帮朋友写了一个文件夹遍历类,但是写到了一半,他说不用了,所以下边是功能不是很全的代码,但是基本功能已经实现了

View Code
1   2   3   4     
5 6
7
8 9 10
 11     
fileArray[][0] = $fileName; 34 }elseif(is_dir($dir.'/'.$fileName)){ 35 $this->dirArray[][0] = $fileName.'/'; 36 } 37 } 38 } 39 } 40 private function setDirInfo(){ 41 foreach($this->dirArray as $key=>$value){ 42 $this->dirArray[$key][1] = date('Y-m-d',filemtime($value[0])); 43 $this->dirArray[$key][2] = '目录'; 44 $this->dirArray[$key][3] = '—'; 45 } 46 } 47 public function getDirInfo(){ 48 $this->setDirInfo(); 49 return $this->dirArray; 50 } 51 private function setFileInfo(){ 52 foreach($this->fileArray as $key=>$value){ 53 $this->fileArray[$key][1] = date('Y-m-d',filemtime($value[0])); 54 if(strrpos($value[0],'.')){ 55 $this->fileArray[$key][2] = substr($value[0],(strrpos($value[0],'.')+1)); 56 }else { 57 $this->fileArray[$key][2] = '—'; 58 } 59 $this->fileArray[$key][3] = $this->getSize($value[0]); 60 //@todo:preview 这里获取了文件的预览,可以更改一下 61 if($preview = $this->getPreview($value[0])){ 62 $this->fileArray[$key][4] = $preview; 63 } 64 } 65 } 66 public function getFileInfo(){ 67 $this->setFileInfo(); 68 return $this->fileArray; 69 } 70 private function getSize($fileName){ 71 if(!file_exists($fileName)||!is_readable($fileName)){ 72 return '—'; 73 } 74 $size = filesize($fileName); 75 $units=array('B','KB','MB','GB','TB'); 76 for($i=0;$size>=1024&&$i<4;$i++) 77 $size/=1024; 78 return round($size,2).$units[$i]; 79 } 80 /* 81 * 82 * @tip:出于安全考虑,只能预览图片文件及普通文本文件 83 * 84 */ 85 static function getPreview($fileName){ 86 if(!file_exists($fileName) || !is_readable($fileName)){ 87 return ''; 88 } 89 $imgTypeArray = array('jpg','png','gif','bmp','ico'); 90 $textTypeArray = array('txt','lrc','sql','xml'); 91 $type = substr($fileName,(strrpos($fileName,'.')+1)); 92 $type = trim($type); 93 if(in_array(strtolower($type),$imgTypeArray)){ 94 return ''; 95 }elseif(in_array(strtolower($type),$textTypeArray)){ 96 $result = @file_get_contents($fileName); 97 if(mb_check_encoding($result,'utf-8')){ 98 $result = mb_convert_encoding($result,'gbk','utf-8'); 99 }100 return '
'.$result.'
';101 }else {102 return false;103 }104 105 }106 }107 $index = new getIndex();108 print_r($index->getFileInfo());109 110 ?>111
112 113

 

转载于:https://www.cnblogs.com/picaso/archive/2012/12/01/2797092.html

你可能感兴趣的文章
iOS 路径设置(转)
查看>>
科学计算和可视化
查看>>
WPF 自定义TextBox,可控制键盘输入内容
查看>>
一起学Android之ViewPager
查看>>
ajax方式提交表单数据并判断当前注册用户是否存在
查看>>
2017.10.23 Arduino Atmel EFM32低功耗监测
查看>>
poj2063
查看>>
poj1434
查看>>
Eclipse主题更改
查看>>
ubuntu刚安装好之后apt-get使用异常
查看>>
C++ vector的reserve和resize详解
查看>>
maven3常用命令、java项目搭建、web项目搭建
查看>>
BZOJ1023:[SHOI2008]仙人掌图——题解
查看>>
JavaBean简单及使用
查看>>
css3基本属性
查看>>
PEB结构学习
查看>>
python之属性描述符与属性查找规则
查看>>
linux之各目录作用
查看>>
海淀、西城、东城各类小学排名(转载)
查看>>
AbstractFactory抽象工厂模式(创建型模式)
查看>>