PHP file操作类 判断文件或目录是否存在 复制删除文件等
今天与大家分享一个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
大家评论
站长推荐
点击排行
- 1CSS控制文字在Div最底部显示
- 2Thinkphp5如何配置IP+端口访问项目模块
- 3elementUI el-dialog弹框居中
- 4教你如何搭建及优化站点
- 5国内互联网视频行业运营分析
- 6service mysql start出错,mysql不能启动,解决mysql: unrecognized service错误
- 7CSS实现悬浮顶部的Div工具栏
- 8记一次Thinkphp5.1框架mysql数据库崩溃(SQLSTATE [08004] Too many connections)
- 9连接SQL Server数据库提示:Login failed for user 'sa'错误的解决方案
- 10Thinkphp3.2在centos7上设置计划任务的方法