typename($f); if(is_array($light)){ foreach($light as $value){ if($fname==$this->path2name($value)) $fname="".$fname.""; } }elseif($light){ if($fname==$this->path2name($light)) $fname="".$fname.""; } if($f==($path.'.')){ $data['.']=realpath($f); }elseif($f==($path.'..')){ $data['..']=realpath($f); }elseif(is_dir($f)){ $data['dir'][]=array( 'path'=>realpath($f), 'name'=>$fname, 'power'=>$this->power($f), 'ftime'=>$this->ftime($f), 'etime'=>$this->etime($f) ); }elseif(is_file($f)){ $data['file'][]=array( 'path'=>realpath($f), 'name'=>$fname, 'size'=>$this->filesize($f), 'typeimg'=>$this->typeimg($f), 'power'=>$this->power($f), 'ftime'=>$this->ftime($f), 'etime'=>$this->etime($f) ); }else{ $data['other'][]=realpath($f); } } return $data; } function page($array,$pagesize=0,$linkNum=7,$page=1){//分页 if(!preg_match('/^[0-9]+$/i',$page) || !$page) $page=1; $content=array(); $total=count($array); if(!preg_match('/^[0-9]+$/i',$pagesize) || !$pagesize) $pagesize=$total; if(!$pagesize) $pagesize=30; $maxPage=ceil($total/$pagesize);//最大页码 $page=($page>($maxPage)?($maxPage):$page); $start=($page-1)*$pagesize; if($pagesize>$total) $pagesize=$total; for($i=$start;$i<($start+$pagesize);$i++){ if($array[$i]) array_push($content,$array[$i]); } $this->start=($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1"; $this->end=($page+round($linkNum/2))<$maxPage ? ($page+round($linkNum/2)) : $maxPage; $this->maxPage=$maxPage;//最大页码 $this->pageSize=$pageSize;//每页显示 $this->linkNum=$linkNum;//链接显示数 $this->totalNum=$total;//总数 $this->page=$page;//当前页 return $content; } function getpagecs(){ //获取分页参数 $myarray = array('Page'=>$this->page,'Start'=>$this->start,'End'=>$this->end,'maxPage'=>$this->maxPage,'pageSize'=>$this->pageSize,'linkNum'=>$this->linkNum,'totalNum'=>$this->totalNum); return $myarray; } function power($path){//获取权限 $p=$this->decode($path); if(preg_match('/%/',$p)){ return '未知'; }else{ return substr(sprintf('%o',fileperms($p)),-4); } } function ftime($path){//获取最后访问时间 $p=$this->decode($path); if(preg_match('/%/',$p)){ return '未知'; }else{ return $this->times(gmdate("Y-m-d H:i:s",fileatime($p)+8*3600)); } } function etime($path){//获取最后修改时间 $p=$this->decode($path); if(preg_match('/%/',$p)){ return '未知'; }else{ return $this->times(gmdate("Y-m-d H:i:s",filemtime($p)+8*3600)); } } function times($time){ if(strtotime($time)>strtotime("today")){ return '今天 '.date("m-d H:i:s",strtotime($time)); }elseif(strtotime($time)>strtotime("-2 day")){ return '昨天 '.date("m-d H:i:s",strtotime($time)); }elseif(strtotime($time)>strtotime("last week")){ return '上周 '.date("m-d H:i:s",strtotime($time)); }else{ return $time; } } function path2name($path){ return preg_replace('/^.+[\\\\\\/]/', '', $path); //return basename($path); } function typename($path){//获取名称 $c=strrchr($path,'/'); if($c){ return str_replace("/", "", $c); } } function typeimg($path){//获取文件图标 $c=strrchr($path,'.'); if($c){ $c=strtolower($c);//转换小写 if($c=='.txt'){ return "txt"; }elseif($c=='.rar' || $c=='.zip'){ return "rar"; }elseif($c=='.js'){ return "js"; }elseif($c=='.gif' || $c=='.jpg' || $c=='.png' || $c=='.bmp' || $c=='.zip'){ return "jpg"; }elseif($c=='.css'){ return "css"; }elseif($c=='.php'){ return "php"; }elseif($c=='.tpl'){ return "tpl"; }elseif($c=='.asp'){ return "asp"; }elseif($c=='.mp3' || $c=='.wmv'){ return "mp3"; }else{ return "da"; } }else{ return 'da'; } } function filesize($path){ $size=filesize($path); if($size<=1024) { return $size.'B'; }elseif($size<=(1024*1024)){ $size=$size/1024; return number_format($size,3).'KB'; }elseif($size<=(1024*1024*1024)){ $size=$size/1024/1024; return number_format($size,3).'MB'; }else{ $size=$size/1024/1024/1024; return number_format($size,3).'GB'; } } function adddir($name,$path){//创建目录 if(preg_match('/^([a-zA-Z0-9_\-\.\x{4e00}-\x{9fa5}]+)$/u',$name)!=false){ $paths=iconv("utf-8","gbk",$this->decode($path).'/'.$name); if(!is_dir($paths)){ mkdir($paths,0777); }else{ $name=$name."_".mt_rand(1,9999999); mkdir($this->decode($path).'/'.$name,0777); } return $name; } } function re_name($name,$path){//重命名 if(preg_match('/^([a-zA-Z0-9_\-\.\x{4e00}-\x{9fa5}]+)$/u',$name)!=false) { $path=iconv("utf-8","gbk",$this->decode($path)); $name=iconv("utf-8","gbk",$name); if(is_dir($path)){ chdir(dirname($path.'/'.$name).'/../'); $to=getcwd().'/'.$name; if(is_dir($to)){ $to=getcwd().'/'.$name."_".mt_rand(1,9999999); } }else{ $to=dirname($path).'/'.$name; if(file_exists($to)){ $to=dirname($path).'/'.$name.".".mt_rand(1,9999999); } } if(rename($path,$to)!=false){ return $this->decode(dirname($to)); } } } function copyDir($source,$destination){ $result = true; if(is_dir($source)){ if(!is_dir($destination)){ mkdir($destination,0777); }else{ $destination=$destination."_".mt_rand(1,9999999); mkdir($destination,0777); } $handle = opendir($source); while(($file = readdir($handle)) !== false){ if($file != '.' && $file != '..'){ $src = $source . DIRECTORY_SEPARATOR . $file; $dtn = $destination . DIRECTORY_SEPARATOR . $file; if(is_dir($src)){ $this->copyDir($src, $dtn); }else{ if(!copy($src, $dtn)){ $result = false; break; } } } } closedir($handle); } return $result; } function filemime($path){ if(function_exists('finfo_open')==true){ $finfo=finfo_open(FILEINFO_MIME); $mime=finfo_file($finfo,$path); finfo_close($finfo); return $mime; }elseif(function_exists('mime_content_type')==true){ return mime_content_type($path); }else{ return 'false'; } } function my_judge_empty_dir($directory){//判断目录是否为空 $handle = opendir($directory); while(($file = readdir($handle)) !== false){ if ($file != "." && $file != ".."){ closedir($handle); return false; } } closedir($handle); return true; } function removeDir($dirName){//删除目录 if(!is_dir($dirName)) { return false; } $handle=opendir($dirName); while(($file=readdir($handle))!==false){ if($file!="."&&$file!=".."){ $dir=$dirName."/".$file; is_dir($dir) ? $this->removeDir($dir) : unlink($dir); } } closedir($handle); return rmdir($dirName) ; } function removeFile($path){//删除文件 if(file_exists($path)==true){ unlink($path); } if(file_exists($path)==false){ return true; }else{ return false; } } function is_utf8($word){//判断是否UTF8编码文件 if(preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word) == true){ return 'utf-8'; }else{ return 'gb2312'; } } function save($path,$content,$charset=''){//保存文件 if($charset=='utf-8'){ $content=iconv("gbk","utf-8",$content); } $f=fopen($path,"wb"); fputs($f, $content); fclose($f); return true; } // function view($path,$size){ // if(filesize($path)==0){ // return false; // } // if(($data=file_get_contents($path))==false){ // return false; // } // if(function_exists('iconv_substr')==true){ // $total_page=iconv_strlen($data,'utf-8')/$size; // if($total_page<=1) { // $total_page=1; // } // $i=1; // while($i<($total_page+1)){ // $idata[]=iconv_substr($data,$i*$size-$size,$size,'utf-8'); // $i++; // } // return $idata; // }else{ // return $data; // } // } function readata($path){//读取文件 if(($data=file_get_contents($path))==false){ return $data=null; }else{ return $data; } } function urlupload($path,$furl){//上传远程文件 if(function_exists('curl_init')){ $ch=curl_init(); if(($fp=fopen($path,'w'))==false){ return false; } curl_setopt($ch,CURLOPT_URL,$furl); curl_setopt($ch,CURLOPT_FILE,$fp); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); curl_exec($ch); curl_close($ch); fclose($fp); return true; }else{ $fp=fopen($path,'w'); if(!$fp) return false; $fp2=fopen($furl,'r'); if(!$fp2) return false; while(!feof($fp2)) { fwrite($fp,fread($fp2,8192)); } fclose($fp2); fclose($fp); return true; } } function is_url($str){ return preg_match ('/^(http|ftp|https|ftps):\/\/([a-z0-9\-_]+\.)+[a-z]{2,5}/i',$str); } function setting($url,$p){ if($data=$this->readata($url)){ $data=str_replace(array(' ','$','',"CONFIG['".strtoupper($p)."']=array("),'',$data); $data=explode(chr(10),$data); foreach($data as $values){ if(preg_match("/define+/",$values)){ $datb="1|".str_replace(array('//',',','define','(',')',';','"','\''),array('|','|'),$values); if($this->is_utf8($datb)=='gb2312') $datb=$datb; $info[]=explode('|',$datb); }elseif(preg_match("/=>+/",$values)){ $datb="0|".str_replace(array('//','=>','$',';',',','"','\''),array('|','|'),$values); if($this->is_utf8($datb)=='gb2312') $datb=$datb; $info[]=explode('|',$datb); } } return $info; } } } ?>