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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
PHP4中实现动态代理
Oct 09 PHP
php读取30天之内的根据算法排序的代码
Apr 06 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
PHP实现的MongoDB数据库操作类分享
May 12 PHP
php实现文件下载代码分享
Aug 19 PHP
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
php验证邮箱和ip地址最简单方法汇总
Oct 30 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
PHP迭代器和生成器用法实例分析
Sep 28 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中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
深入解析Python中的WSGI接口
2015/05/11 Python
使用Python绘制图表大全总结
2017/02/11 Python
Python单例模式的两种实现方法
2017/08/14 Python
python爬虫之自动登录与验证码识别
2020/06/15 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
农田水利实习自我鉴定
2013/09/19 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
市场策划求职信
2014/08/07 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
电影开国大典观后感
2015/06/04 职场文书
PYTHON InceptionV3模型的复现详解
2022/05/06 Python