当前位置:
代码迷
>>
PHP
>> PHP索引以及文件遍历类欢迎大家拍砖
详细解决方案
PHP索引以及文件遍历类欢迎大家拍砖
热度:
161
发布时间:
2012-06-25 18:37:39.0
PHP目录以及文件遍历类欢迎大家拍砖
/********************************************************************************* * 目录及文件遍历类 *------------------------------------------- *初级版本,偶的小博客后续根据时间和使用 会逐步改善这些类 *另外推荐大家可以使用 InitPHP 2.0 国产PHP开发框架 link : http://www.initphp.com *------------------------------------------- * $Author:liuxinming * $Dtime:2012-06-23 ***********************************************************************************/ class getfiles{ /* * 目录 */ private $path; /* * 类型 * @param $typeimg 图片格式 * @param $typeflash * @param $typesp 视频格式 * @param $typetext 文本格式 * @param $typeplay 播放媒体格式 * 根据需求可以自己增加格式 */ private $typeimg=',.jpg,.gif,.png,.bmp,.jpeg,'; private $typeflash=',.swf,.flv,.dcr,'; private $typesp=',.wmv,.asf,.wma,.mp3,.asx,.mid,.midi,'; private $typetext=',.txt,.doc,.exl,'; private $typeplay=',.rm,.ra,.rmvb,.mp4,.mov,.avi,.wav,.ram,.mpg,.mpeg,'; /** * 构造函数 */ function __construct($path){ $this->path=$path; } /** * 取得文件扩展名 */ function GetFiletype($filename){ $filer=explode(".",$filename); $count=count($filer)-1; return strtolower(".".$this->RepGetFiletype($filer[$count])); } /** * */ function RepGetFiletype($filetype){ $filetype=str_replace('|','_',$filetype); $filetype=str_replace(',','_',$filetype); $filetype=str_replace('.','_',$filetype); return $filetype; } /** * 文件大小格式转换 * @param string $filesize */ function pathFilesize($size){ if($size>=1024*1024){//MB //函数通过千位分组来格式化数字 $filesize=number_format($size/(1024*1024),2,'.','')." MB"; }else if($size>=1024){//KB $filesize=number_format($size/1024,2,'.','')." KB"; }else{ $filesize=$size." Bytes"; } return $filesize; } /** * 遍历目录及文件并echo 输出 * */ function getfiles(){ $path=$this->path; //检查指定的文件或目录是否存在 if(!is_dir($path)) continue; //打开目录 句柄 $dir=opendir($path); while(($file=readdir($dir))!=false){ if($file=='.' || $file=='..'){ continue; } if($file!='.' || $file!='..'){ //目录 $pathfile=$path.'/'.$file; if(is_dir($pathfile)){//此分支输出目录 $filename=$file; //发布时间 $filetime=@filemtime($pathfile); $filetime=date("Y-m-d H:i:s",$filetime); $filesize='<目录>'; $filetype='文件夹'; }else{//此分支输出文件 $filename=$file; $ftype=$this->GetFiletype($file); //发布时间 $filetime=@filemtime($pathfile); $filetime=date("Y-m-d H:i:s",$filetime); //文件大小 $fsize=@filesize($pathfile); $filesize=$this->pathFilesize($fsize); //文件类型 if(strstr($this->typeimg,','.$ftype.',')) { $filetype='图片'; } elseif(strstr($this->typeflash,','.$ftype.',')) { $filetype='FLASH'; } elseif(strstr($this->typesp,','.$ftype.',')||strstr($typeplay,','.$ftype.',')) { $filetype='视频'; }elseif(strstr($this->typetext,','.$ftype.',')){ $filetype='文本'; } else { $filetype='附件'; } } $table='<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">'; $tr='<tr>'; $tr1='</tr>'; $table1='</table>'; $td=$tr.'<td width=50%>'.$filename.'</td><td width=20%>'.$filetype.'</td>'.'</td><td width=20%>'.$filesize.'</td>'.$tr1; echo $return=$table.$td.$table1; }else{ continue; } } } }
使用方法:
$path='/var/www/lxm/ecms';
$files=new getfiless($path);
$files->getfiles();
运行后效果图:
查看全文
相关解决方案