欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP文件操作功能函数大全

程序员文章站 2022-03-24 18:43:52
...

PHP文件操作功能函数大全

<?php
	/* 转换字节大小 */
	function transByte($size){
		$arr=array("B","KB","MB","GB","TB","EB");
		$i=0;
		while($size>=1024){
			$size/=1024;
			$i++;
		}
		return round($size,2).$arr[$i];
	}

	/* 检测文件名称是否合法 */
	function checkFilename($filename){
		$pattern = "/[\/,\*,<>,\?\|]/";
		if(preg_match($pattern,$filename)){
			return false;
		}else{
			return true;
		}
	}
	
	/* 创建文件 */
	function createFile($filename){
		if(checkFilename($filename)){
			//检测当前目录下是否存在同名的文件
			if(!file_exists($filename)){
				//通过touch($filename)来创建
				if(touch($filename)){
					$mes="文件创建成功";
				}else{
					$mes="文件创建失败";
				}
			}else{
				$mes="文件已经存在,请重新命名后创建";
			}
		}else{
			$mes="非法文件名";
		}
		return $mes;
	}
	
	/* 重命名文件 */
	function renameFile($oldname,$newname){
		//验证文件名的合法性
		if(checkFilename($newname)){
			//检测当前目录下是否存在同名的文件
			$path=dirname($oldname);
			if(!file_exists($path."/".$newname)){
				//进行重命名
				if(rename($oldname,$path."/".$newname)){
					$mes="重命名成功";
				}else{
					$mes="重命名失败";
				}
			}else{
				$mes="存在同名文件,请重新命名";
			}
		}else{
			return $mes="非法文件名";
		}
		return $mes;
	}

	/* 删除文件 */
	function delFile($filename){
		if(unlink($filename)){
			$mes="文件删除成功";
		}else{
			$mes="文件删除失败";
		}
		return $mes;
	}

	/* 下载文件操作 */
	function downFile($filename){
		header("Content-disposition:attachment;filename=".basename($filename));
		header("Content-length:".filesize($filename));
		readfile($filename);
	}
	
	/* 复制文件 */
	function copyFile($filename,$dstname){
		if(file_exists($dstname)){
			if(!file_exists($dstname."/".basename($filename))){
				if(copy($filename,$dstname."/".basename($filename))){
					$mes="文件复制成功";
				}else{
					$mes="文件复制失败";
				}
			}else{
				$mes="存在同名文件";
			}
		}else{
			$mes="目标目录不存在";
		}
		return $mes;
	}
	
	/* 剪切文件 */
	function cutFile($filename,$dstname){
		if(file_exists($dstname)){
			if(!file_exists($dstname."/".basename($filename))){
				if(rename($filename,$dstname."/".basename($filename))){
					$mes="文件剪切成功";
				}else{
					$mes="文件剪切失败";
				}
			}else{
				$mes="存在同名文件";
			}
		}else{
			$mes="目标目录不存在";
		}
		return $mes;
	}
	
	/* 上传文件 */
	function uploadFile($fileInfo,$path,$allowExt=array("gif","jpeg","jpg","png","txt"),$maxSize=10485760){
		//判断错误号
		if($fileInfo['error']==UPLOAD_ERR_OK){
			//文件是否是通过HTTP POST方式上传上来的
			if(is_uploaded_file($fileInfo['tmp_name'])){
				//上传文件的文件名,只允许上传jpeg|jpg、png、gif、txt的文件
				//$allowExt=array("gif","jpeg","jpg","png","txt");
				$ext=getExt($fileInfo['name']);
				$uniqid=getUniqidName();
				$destination=$path."/".pathinfo($fileInfo['name'],PATHINFO_FILENAME)."_".$uniqid.".".$ext;
				if(in_array($ext,$allowExt)){
					if($fileInfo['size']<=$maxSize){
						if(move_uploaded_file($fileInfo['tmp_name'], $destination)){
							$mes="文件上传成功";
						}else{
							$mes="文件移动失败";
						}
					}else{
						$mes="文件过大";
					}
				}else{
					$mes="非法文件类型";
				}
			}else{
				$mes="文件不是通过HTTP POST方式上传上来的";
			}
		}else{
			switch($fileInfo['error']){
				case 1:
					$mes="超过了配置文件的大小";
					break;
				case 2:
					$mes="超过了表单允许接收数据的大小";
					break;
				case 3:
					$mes="文件部分被上传";
					break;
				case 4:
					$mes="没有文件被上传";
					break;
			}
		}
		return $mes;
	}
?>