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 getfiles($path);
$files->getfiles();

运行后效果图:

PHP目录以及文件遍历类欢迎大家拍砖_第1张图片


你可能感兴趣的:(PHP,Date,function,File,table,Path)