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 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
PHP4.04简明安装
Oct 09 PHP
第五节--克隆
Nov 16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
Jun 23 PHP
Laravel框架路由配置总结、设置技巧大全
Sep 03 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
php实现网站留言板功能
Nov 04 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
Yii2增删改查之查询 where参数详细介绍
Aug 08 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 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 mysql与mysqli事务使用说明 分享
2013/08/17 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
为超链接加上disabled后的故事
2010/12/10 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
python根据路径导入模块的方法
2014/09/30 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
python线程池threadpool使用篇
2018/04/27 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
python实现祝福弹窗效果
2019/04/07 Python
pow在python中的含义及用法
2019/07/11 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
信息服务专业毕业生求职信
2014/03/02 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2014年组织部工作总结
2014/11/14 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android