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-MySQL教程归纳总结
Jun 07 PHP
PHP伪静态写法附代码
Jun 20 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
IIS7.X配置PHP运行环境小结
Jun 09 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
php源码的使用方法讲解
Sep 26 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 21 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中的加密功能
2006/10/09 PHP
简单的用PHP编写的导航条程序
2006/10/09 PHP
php购物车实现方法
2015/01/03 PHP
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
详解Python自建logging模块
2018/01/29 Python
python实现大转盘抽奖效果
2019/01/22 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
毕业生个人求职的自我评价
2013/10/28 职场文书
普通院校学生的自荐信
2013/11/27 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
Spring中bean集合注入的方法详解
2022/07/07 Java/Android