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 03 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
PHP生成随机密码类分享
Jun 25 PHP
PHP生成RSS文件类实例
Dec 05 PHP
php实现过滤UBB代码的类
Mar 12 PHP
提高php编程效率技巧
Aug 13 PHP
Thinkphp整合微信支付功能
Dec 14 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
php微信公众号开发之简答题
Oct 20 PHP
PHP PDOStatement::fetchColumn讲解
Jan 31 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 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
1 Tube Radio
2021/03/02 无线电
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
Python生成短uuid的方法实例详解
2018/05/29 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
python+pyqt5编写md5生成器
2019/03/18 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
Python 忽略文件名编码的方法
2020/08/01 Python
什么是数组名
2012/05/10 面试题
毕业自我鉴定总结
2014/03/24 职场文书
计划生育标语
2014/06/23 职场文书
十佳青年事迹材料
2014/08/21 职场文书
先进事迹演讲稿
2014/09/01 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
行政复议决定书
2015/06/24 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
护士心得体会范文
2016/01/25 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
MySQL优化之慢日志查询
2022/06/10 MySQL