php文件操作相关类实例
本文实例讲述了php文件操作相关类。分享给大家供大家参考。具体如下:
<?php classfile_dir { functioncheck_exist($filename) //检查目录或文件是否存在 { if(file_exists($filename)) { returntrue; } elsereturnfalse; } functioncreate_dir($dirname,$mode=0777) //一次只能创建一级目录 { if(is_null($dirname)||$dirname=="")returnfalse; if(!is_dir($dirname)) { returnmkdir($dirname,$mode); } } functioncreateDir($aimUrl)//可同时创建多级目录 { $aimUrl=str_replace('\\','/',$aimUrl); $aimDir=''; $arr=explode('/',$aimUrl); foreach($arras$str) { $aimDir.=$str.'/'; if(!file_exists($aimDir)) { mkdir($aimDir); } } } functiondelete_dir($dirname)//删除目录 { if($this->check_exist($dirname)andis_dir($dirname)) { if(!$dirhandle=opendir($dirname))returnfalse; while(($file=readdir($dirhandle))!==false) { if($file=="."or$file=="..")continue; $file=$dirname.DIRECTORY_SEPARATOR.$file; //表示$file是$dir的子目录 if(is_dir($file)) { $this->delete_dir($file); } else { unlink($file); } } closedir($dirhandle); returnrmdir($dirname); } elsereturnfalse; } functioncopy_dir($dirfrom,$dirto)//复制目录 { if(!is_dir($dirfrom))returnfalse; if(!is_dir($dirto))mkdir($dirto); $dirhandle=opendir($dirfrom); if($dirhandle) { while(false!==($file=readdir($dirhandle))) { if($file=="."or$file=="..")continue; $filefrom=$dirfrom.DIRECTORY_SEPARATOR.$file; //表示$file是$dir的子目录 $fileto=$dirto.DIRECTORY_SEPARATOR.$file; if(is_dir($filefrom)) { $this->copy_dir($filefrom,$fileto); } else {if(!file_exists($fileto)) copy($filefrom,$fileto); } } } closedir($dirhandle); } functiongetdir_size($dirname)//获取目录大小 { if(!file_exists($dirname)or!is_dir($dirname))returnfalse; if(!$handle=opendir($dirname))returnfalse; $size=0; while(false!==($file=readdir($handle))) { if($file=="."or$file=="..")continue; $file=$dirname."/".$file; if(is_dir($file)) { $size+=$this->getdir_size($file); } else { $size+=filesize($file); } } closedir($handle); return$size; } functiongetReal_size($size)//单位自动转换函数 { $kb=1024; $mb=$kb*1024; $gb=$mb*1024; $tb=$gb*1024; if($size<$kb)return$size."B"; if($size>=$kband$size<$mb)returnround($size/$kb,2)."KB"; if($size>=$mband$size<$gb)returnround($size/$mb,2)."MB"; if($size>=$gband$size<$tb)returnround($size/$gb,2)."GB"; if($size>=$tb)returnround($size/$tb,2)."TB"; } functioncopy_file($srcfile,$dstfile) { if(is_file($srcfile)) { if(!file_exists($dstfile)) returncopy($srcfile,$dstfile); } elsereturnfalse; } functionunlink_file($filename)//删除文件 { if($this->check_exist($filename)andis_file($filename)) { returnunlink($filename); } elsereturnfalse; } functiongetsuffix($filename) //获取文件名后缀 { if(file_exists($filename)andis_file($filename)) { returnend(explode(".",$filename)); } } functioninput_content($filename,$str) //将字符串写入文件 { if(function_exists(file_put_contents)) { file_put_contents($filename,$str); } else { $fp=fopen($filename,"wb"); fwrite($fp,$str); fclose($fp); } } functionoutput_content($filename) //将整个文件内容读出到一个字符串中 { if(function_exists(file_get_contents)) { returnfile_get_contents($filename); } else { $fp=fopen($filename,"rb"); $str=fread($fp,filesize($filename)); fclose($fp); return$str; } } functionoutput_to_array($filename) //将文件内容读出到一个数组中 { $file=file($filename); $arr=array(); foreach($fileas$value) { $arr[]=trim($value); } return$arr; } } //$dir=newfile_dir; //$size=$dir->getdir_size("F:/wamp/www/class/images"); //echo$dir->getReal_size($size); ?>
希望本文所述对大家的php程序设计有所帮助。