欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > PHP > PHP file操作类 判断文件或目录是否存在 复制删除文件等

PHP file操作类 判断文件或目录是否存在 复制删除文件等

2018-06-22 606 收藏 0 赞一个 0 真差劲 0 去评论

今天与大家分享一个PHP文件操作类,进行常规的FSO文件操作,实现的功能有:PHP获取指定文件大小、判断文件及目录是否存在、删除文件或目录、复制文件或目录、同时创建多级目录、读取文件内容到字符串中、将字符串写入文件、获取文件名后缀、获取目录大小等,使用的PHP函数有:file_exists()、mkdir()、filesize、copy、unlink等,这些知识对熟悉PHP中的文件系统操作,也就是FSO相当有用了:

<?php
//PHP判断文件夹和目录是否存在,并获取指定文件大小
class file_dir
{
	//检查目录或文件是否存在
	function check_exist($filename)		
	{
		if(file_exists($filename))
		{
			return true;
		}else	return false;
	}
// 一次只能创建一级目录
function create_dir($dirname,$mode=0777)	
{
	if(is_null($dirname) || $dirname=="")	return false;
	if(!is_dir($dirname))
	{
		return mkdir($dirname,$mode);
	}
}
//可同时创建多级目录
function createDir($aimUrl)		
{
       $aimUrl = str_replace('\\', '/', $aimUrl);
       $aimDir = '';
       $arr = explode('/', $aimUrl);
       foreach ($arr as $str)
       {
       	$aimDir .= $str . '/';
           if (!file_exists($aimDir))
           {
               mkdir($aimDir);
           }
       }
}
//删除目录
function delete_dir($dirname)		
{
	if($this->check_exist($dirname) and is_dir($dirname))
	{
		if(!$dirhandle=opendir($dirname)) return false;
		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);
		return rmdir($dirname);
	}
			else	return false;
}
//复制目录
function copy_dir($dirfrom,$dirto)		
{
	if(!is_dir($dirfrom))	return false;
	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);
	}
//获取目录大小
function getdir_size($dirname)
{
	if(!file_exists($dirname) or !is_dir($dirname))	 return false;
	if(!$handle=opendir($dirname)) 	return false;
	$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;
}
// 单位自动转换函数
function getReal_size($size)
{
	$kb=1024;
	$mb=$kb*1024;
	$gb=$mb*1024;
	$tb=$gb*1024;
	if($size<$kb)	return $size."B";
	if($size>=$kb and $size<$mb)	return round($size/$kb,2)."KB";
	if($size>=$mb and $size<$gb)	return round($size/$mb,2)."MB";
	if($size>=$gb and $size<$tb)	return round($size/$gb,2)."GB";
	if($size>=$tb)	return round($size/$tb,2)."TB";
}
//复制文件
function copy_file($srcfile,$dstfile)
{
	if(is_file($srcfile))
	{
		if(!file_exists($dstfile))
		return copy($srcfile,$dstfile);
		}
	else	return false;
}
//删除文件
function unlink_file($filename)		
{
   	 if($this->check_exist($filename) and is_file($filename))
   	 {
   	 	return unlink($filename);
   	 }else	return false;
}
//获取文件名后缀
function getsuffix($filename)			
{
   	if(file_exists($filename) and is_file($filename))
   	 {
   	 	return end(explode(".",$filename));
   	 }
}
//将字符串写入文件
function input_content($filename,$str)		
{
   	 if(function_exists(file_put_contents))
   	 {
   	 		file_put_contents($filename,$str);
   	 }else{
   	 		$fp=fopen($filename,"wb");
   	 		fwrite($fp,$str);
   	 		fclose($fp);
   	 }
}
//将整个文件内容读出到一个字符串中
function output_content($filename)			
{
   	 if(function_exists(file_get_contents))
   	 	{
   	 		return file_get_contents($filename);
   	 	}else{
   	 		$fp=fopen($filename,"rb");
   	 		$str=fread($fp,filesize($filename));
   	 		fclose($fp);
   	 		return $str;
   	 	}
}
//将文件内容读出到一个数组中
function output_to_array($filename)		
{
   	 $file=file($filename);
   	 $arr=array();
   	 foreach($file as $value)
   	 {
   	 	$arr[]=trim($value);
   	 }
   	 return $arr;
 }
}//类结束
?>

上述文件可保存为file_dir.class.php,使用方法如下:

include 'file_dir.class.php';
$dir=new file_dir;//建立类对象
$size=$dir->getdir_size("D:/wamp/www/class/images");//通过这个类获取指定文件大小
echo $dir->getReal_size($size);//通过这个类获取指定文件大小


一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论