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程序设计有所帮助。