php文件操作相关类实例


Posted in PHP onJune 18, 2015

本文实例讲述了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;
  }
 }
 //$dir=new file_dir;
 //$size=$dir->getdir_size("F:/wamp/www/class/images");
 //echo $dir->getReal_size($size);
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP 上传文件的方法(类)
Jul 30 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
php学习笔记之面向对象
Nov 08 PHP
PHP安装memcached扩展笔记
May 28 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
php动态绑定变量的用法
Jun 16 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
PHP记录页面停留时间的方法
Mar 30 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
PHP 文件写入和读取操作实例详解【必看篇】
Nov 04 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 PHP
php身份证号码检查类实例
Jun 18 #PHP
PHP批量生成图片缩略图的方法
Jun 18 #PHP
基于php的CMS中展示文章类实例分析
Jun 18 #PHP
php实现的用户查询类实例
Jun 18 #PHP
php常用表单验证类用法实例
Jun 18 #PHP
php文件压缩之PHPZip类用法实例
Jun 18 #PHP
浅谈php中include文件变量作用域
Jun 18 #PHP
You might like
php的ZipArchive类用法实例
2014/10/20 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
python中 logging的使用详解
2017/10/25 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
kafka-python批量发送数据的实例
2018/12/27 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
Django和Flask框架优缺点对比
2019/10/24 Python
利用python爬取有道词典的方法
2020/12/08 Python
英国探险旅游专家:Explore
2018/12/20 全球购物
行政文员岗位职责
2013/11/08 职场文书
高中自我评价范文
2014/01/27 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
新郎答谢词
2015/01/04 职场文书
五一晚会主持词
2015/07/01 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL