• PHP文件操作功能函数大全


    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;
    	}
    ?>
    

      

  • 相关阅读:
    面试题: 数据库 已看1 group by 和order by的练习 sql语句练习简单 有用
    笔试题: 数据库 已看1 一些关键的sql语句练习 和选择题 有用 sql语句练习 挺好
    面试题: mysql数据库 已看1 简单的sql练习
    面试题: mysql 数据库已看 sql安全性 索引 引擎 sql优化
    面试题: redis面试题 有用 redis详细
    面试题: mysql 数据库去重 已看1 不好使
    面试题: 数据库已看1 视图存储过程 没用
    面试题: mysql数据库 已看1 索引和事务 没用
    面试题: 数据库 oracle数据库 已看1 意义不大 有用
    LeetCode--Valid Palindrome
  • 原文地址:https://www.cnblogs.com/yxhblogs/p/5839800.html
Copyright © 2020-2023  润新知