php 关于文件的一些封装好的函数
生活随笔
收集整理的這篇文章主要介紹了
php 关于文件的一些封装好的函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
?
<?php //Bytes/Kb/MB/GB/TB/EB /*** 轉(zhuǎn)換字節(jié)大小* @param number $size* @return number*/ 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]; }/*** 創(chuàng)建文件* @param string $filename* @return string*/ function createFile($filename) {//file/1.txt//驗證文件名的合法性,是否包含/,*,<>,?,|$pattern = "/[\/,\*,<>,\?\|]/";if (! preg_match ( $pattern, basename ( $filename ) )) {//檢測當前目錄下是否存在同名文件if (! file_exists ( $filename )) {//通過touch($filename)來創(chuàng)建if (touch ( $filename )) {return "文件創(chuàng)建成功";} else {return "文件創(chuàng)建失敗";}} else {return "文件已存在,請重命名后創(chuàng)建";}} else {return "非法文件名";} }/*** 重命名文件* @param string $oldname* @param string $newname* @return string*/ function renameFile($oldname,$newname){ // echo $oldname,$newname; //驗證文件名是否合法if(checkFilename($newname)){//檢測當前目錄下是否存在同名文件$path=dirname($oldname);if(!file_exists($path."/".$newname)){//進行重命名if(rename($oldname,$path."/".$newname)){return "重命名成功";}else{return "重命名失敗";}}else{return "存在同名文件,請重新命名";}}else{return "非法文件名";}}/***檢測文件名是否合法* @param string $filename* @return boolean*/ function checkFilename($filename){$pattern = "/[\/,\*,<>,\?\|]/";if (preg_match ( $pattern, $filename )) {return false;}else{return true;} }/*** 刪除文件* @param string $filename* @return string*/ function delFile($filename){if(unlink($filename)){$mes="文件刪除成功";}else{$mes="文件刪除失敗";}return $mes; }/*** 下載文件操作* @param string $filename*/ function downFile($filename){header("content-disposition:attachment;filename=".basename($filename));header("content-length:".filesize($filename));readfile($filename); }/*** 復(fù)制文件* @param string $filename* @param string $dstname* @return string*/ function copyFile($filename,$dstname){if(file_exists($dstname)){if(!file_exists($dstname."/".basename($filename))){if(copy($filename,$dstname."/".basename($filename))){$mes="文件復(fù)制成功";}else{$mes="文件復(fù)制失敗";}}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; }/*** 上傳文件* @param array $fileInfo* @param string $path* @param array $allowExt* @param int $maxSize* @return string*/ 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="超過了表單允許接收數(shù)據(jù)的大小";break;case 3:$mes="文件部分被上傳";break;case 4:$mes="沒有文件被上傳";break;}}return $mes;}?
轉(zhuǎn)載于:https://www.cnblogs.com/binblogs/p/5179272.html
總結(jié)
以上是生活随笔為你收集整理的php 关于文件的一些封装好的函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装mysql 5.5.14 报错
- 下一篇: 动态规划算法php,php算法学习之动态